Skip to content
广告 · 本站推荐广告

Nextcloud Talk - 开源协作平台接入

Nextcloud Talk 是 Nextcloud 协作平台内置的即时通讯和视频会议功能。通过集成 OpenClaw,可以在 Nextcloud Talk 的 Conversation(对话)中实现 AI 自动化交互,同时利用 Nextcloud 的文件系统实现无缝协作。

前置要求

  • 一个 Nextcloud 实例(版本 25.0+,推荐 28.0+)
  • 已安装并启用 Talk App(通讯应用)
  • 拥有管理员权限或可创建 App Password 的账号
  • OpenClaw Gateway(网关)已安装并运行

安装插件

bash
openclaw plugins install @openclaw/nextcloud-talk

接入步骤

第一步:创建 Bot 账号

建议在 Nextcloud 中创建一个专用账号用于 Bot:

  1. 进入 Settings > Users(设置 > 用户),点击 New user
  2. 填写用户名(如 openclaw-bot)和密码
  3. 分配到合适的 Group(用户组)

第二步:生成 App Password

使用 Bot 账号登录 Nextcloud:

  1. 进入 Settings > Security(设置 > 安全)
  2. Devices & sessions(设备和会话)区域输入 App 名称
  3. 点击 Create new app password(创建新应用密码)
  4. 记录生成的 App Password

安全提示

App Password 仅显示一次,请立即保存。如果丢失需重新生成。

第三步:配置 OpenClaw

json5
{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      serverUrl: "https://your-nextcloud.com",   // Nextcloud 实例地址
      user: "openclaw-bot",                       // Bot 用户名
      password: "app-password-xxx",               // App Password
      dmPolicy: "pairing"                         // DM Policy(私信策略)
    }
  }
}

也可以通过 Environment Variable(环境变量)设置:

bash
export NEXTCLOUD_URL="https://your-nextcloud.com"
export NEXTCLOUD_USER="openclaw-bot"
export NEXTCLOUD_PASSWORD="app-password-xxx"

第四步:重启 Gateway 并验证

bash
openclaw gateway restart

在 Nextcloud Talk 中发起与 Bot 的一对一对话,获取 Pairing Code(配对码)后批准:

bash
openclaw pairing approve nextcloud-talk <pairing-code>

Conversation(对话)配置

json5
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        allowAll: false,
        allowRooms: ["token1", "token2"],    // 允许的 Conversation Token
        requireMention: true                  // 群组中需 @机器人
      }
    }
  }
}

获取 Conversation Token

Conversation Token 是 Talk 对话的唯一标识,在对话链接中可以找到:https://your-nextcloud.com/call/TOKEN

文件共享集成

Nextcloud Talk 消息中共享的文件可以被 OpenClaw 识别和处理:

json5
{
  channels: {
    "nextcloud-talk": {
      fileHandling: {
        enabled: true,
        downloadPath: "/tmp/openclaw-files",     // 文件下载临时目录
        maxFileSize: "10MB",                      // 最大文件大小
        allowedTypes: ["pdf", "txt", "csv"]       // 允许的文件类型
      }
    }
  }
}

Polling 机制

Nextcloud Talk 使用 Long Polling(长轮询)获取新消息:

json5
{
  channels: {
    "nextcloud-talk": {
      polling: {
        interval: 3000,        // 轮询间隔(毫秒)
        timeout: 30000         // 长轮询超时(毫秒)
      }
    }
  }
}

DM Policy(私信策略)

策略说明
pairing用户需先获取 Pairing Code(配对码)验证
allowlist仅允许指定 Nextcloud 用户私聊
open所有人均可私聊(谨慎使用)

常见问题

Bot 无法连接到 Nextcloud

  1. 确认 serverUrl 地址正确,包含协议前缀 https://
  2. 确认 App Password 有效(尝试用它登录 Nextcloud Web)
  3. 检查 Nextcloud 是否启用了 Brute-force Protection(暴力破解保护),可能需要添加 IP 白名单

消息延迟较大

  1. 减小 polling.interval 值以提高响应速度
  2. 确认 Nextcloud 服务器性能足够
  3. 检查是否有反向代理超时配置问题

Talk App 版本不兼容

确认 Talk App 版本与 Nextcloud 版本匹配,参考 Nextcloud Talk 版本矩阵

🇨🇳 中国用户须知

Nextcloud 可完全私有部署,适合信创要求和国产化替代需求。

信创合规:Nextcloud 是开源协作平台,可部署在国产操作系统和国产硬件上,满足信创环境要求。

部署建议:搭配 PostgreSQL 或 MySQL 数据库,使用 Docker 部署在内网服务器上,通过 Nginx 反向代理提供 HTTPS 访问。

国内镜像:Nextcloud Docker 镜像可通过国内容器镜像加速获取,避免网络问题。

适用场景:需要文件协作 + 即时通讯一体化的中小企业、科研机构、政务内网。

基于MIT协议开源 | 内容翻译自 官方文档,同步更新