Nextcloud Talk机器人设置问题 | AI生成和翻译

Home 2026.04

完整回顾——发生的情况与我们的收获

以下是Nextcloud Talk设置过程的完整梳理以及我们遇到的各种问题:


我们的操作步骤

步骤一:通过 occ 安装机器人

docker exec nextcloud-app-1 php occ talk:bot:install "OpenClaw" "$SECRET" "http://172.17.0.1:8788/nextcloud-talk-webhook" --feature webhook,response,reaction
docker exec nextcloud-app-1 php occ talk:bot:setup 7 eu42ecdy

步骤二:配置 OpenClaw

channels.nextcloud-talk.baseUrl: "http://172.17.0.1:8080"   // 原为 http://localhost:8080
channels.nextcloud-talk.botSecret: "GgLbdQ9i3ifzHKQt3WqgbmJbA94ZX3WDdVXUW0YpaLE="
channels.nextcloud-talk.dmPolicy: "allowlist"
channels.nextcloud-talk.allowFrom: ["*"]

我们遇到的问题(按顺序)

🔴 问题一:重复插件

🔴 问题二:baseUrl 不匹配导致的来源不一致

🔴 问题三:机器人密钥不匹配

🟡 问题四:缺少 @提及 = 消息被丢弃


关键技术发现

  1. 签名验证有效 —— HMAC-SHA256(随机数 + 消息体, 密钥) 计算正确
  2. Webhook 连通性正常 —— Nextcloud 容器可以访问 http://172.17.0.1:8788
  3. 消息确实送达 OpenClaw —— 日志已确认显示 nextcloud-talk: drop room eu42ecdy (no mention)
  4. 提及要求 —— OpenClaw 仅处理群组消息中 @提及了机器人的消息;这是一个设计选择,旨在防止机器人在群聊中产生垃圾信息

当前状态

组件 状态
机器人已在 Nextcloud 中安装 ✅ ID 7
机器人已在房间 eu42ecdy 启用
Webhook 可访问
签名验证
OpenClaw 收到消息
消息被处理 ❌ 被丢弃(无 @提及)

仍然存在的阻碍

机器人在群组房间中需要有 @提及 才会响应。要正常使用它,你可以:

  1. 在 1:1 私信中使用 —— 机器人在私信中无需 @提及即可工作
  2. 在群聊中 @提及机器人 —— 例如 @OpenClaw hello
  3. 修改 OpenClaw 代码 以允许群组消息无需提及(出于防垃圾信息考虑,不推荐)

你希望我修改提及策略,还是更倾向于在私信中使用机器人?


Back Donate