Nextcloud Talk(插件)
状态:通过插件支持(webhook 机器人)。支持私聊、房间、表态和 Markdown 消息。
需安装插件
Nextcloud Talk 以插件形式提供,不随核心安装打包。通过 CLI 安装(npm 仓库):
moltbot plugins install @moltbot/nextcloud-talk本地检出(在 git 仓库中运行时):
moltbot plugins install ./extensions/nextcloud-talk若在配置/引导时选择 Nextcloud Talk 且检测到 git 检出,Moltbot 会自动提供本地安装路径。详见 插件。
快速设置(入门)
- 安装 Nextcloud Talk 插件。
- 在 Nextcloud 服务器上创建机器人:
./occ talk:bot:install "Moltbot" "<shared-secret>" "<webhook-url>" --feature reaction- 在目标房间设置中启用机器人。
- 配置 Moltbot:
- 配置:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - 或环境变量:
NEXTCLOUD_TALK_BOT_SECRET(仅默认账号)
- 配置:
- 重启网关(或完成引导)。
最小配置:
{
channels: {
"nextcloud-talk": {
enabled: true,
baseUrl: "https://cloud.example.com",
botSecret: "shared-secret",
dmPolicy: "pairing"
}
}
}说明
- 机器人无法主动发起私聊。用户需先给机器人发消息。
- Webhook URL 必须能被网关访问;若在代理后,需设置
webhookPublicUrl。 - 机器人 API 不支持媒体上传;媒体以 URL 形式发送。
- Webhook payload 不区分私聊与房间;设置
apiUser+apiPassword可启用房间类型查询(否则私聊会被当作房间处理)。
访问控制(私聊)
- 默认:
channels.nextcloud-talk.dmPolicy = "pairing"。未知发件人收到配对码。 - 批准方式:
moltbot pairing list nextcloud-talkmoltbot pairing approve nextcloud-talk <CODE>
- 开放私聊:
channels.nextcloud-talk.dmPolicy="open"且channels.nextcloud-talk.allowFrom=["*"]。
房间(群组)
- 默认:
channels.nextcloud-talk.groupPolicy = "allowlist"(需 @ 提及)。 - 用
channels.nextcloud-talk.rooms白名单房间:
{
channels: {
"nextcloud-talk": {
rooms: {
"room-token": { requireMention: true }
}
}
}
}- 不允许任何房间:保持白名单为空或设置
channels.nextcloud-talk.groupPolicy="disabled"。
能力一览
| 功能 | 状态 |
|---|---|
| 私聊 | 支持 |
| 房间 | 支持 |
| 主题回复 | 不支持 |
| 媒体 | 仅 URL |
| 表态 | 支持 |
| 原生命令 | 不支持 |
配置参考(Nextcloud Talk)
完整配置见 配置。本频道选项:
channels.nextcloud-talk.enabled:是否启动频道。channels.nextcloud-talk.baseUrl:Nextcloud 实例 URL。channels.nextcloud-talk.botSecret:机器人共享密钥。channels.nextcloud-talk.botSecretFile:密钥文件路径。channels.nextcloud-talk.apiUser:房间查询用 API 用户(区分私聊)。channels.nextcloud-talk.apiPassword:房间查询用 API/应用密码。channels.nextcloud-talk.apiPasswordFile:API 密码文件路径。channels.nextcloud-talk.webhookPort:webhook 监听端口(默认 8788)。channels.nextcloud-talk.webhookHost:webhook 主机(默认 0.0.0.0)。channels.nextcloud-talk.webhookPath:webhook 路径(默认 /nextcloud-talk-webhook)。channels.nextcloud-talk.webhookPublicUrl:对外可访问的 webhook URL。channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled。channels.nextcloud-talk.allowFrom:私聊白名单(用户 ID)。open需"*"。channels.nextcloud-talk.groupPolicy:allowlist | open | disabled。channels.nextcloud-talk.groupAllowFrom:群组白名单(用户 ID)。channels.nextcloud-talk.rooms:每房间设置与白名单。channels.nextcloud-talk.historyLimit:群组历史上限(0 禁用)。channels.nextcloud-talk.dmHistoryLimit:私聊历史上限(0 禁用)。channels.nextcloud-talk.dms:每私聊覆盖(historyLimit)。channels.nextcloud-talk.textChunkLimit:出站文本分块大小(字符)。channels.nextcloud-talk.chunkMode:length(默认)或newline,在按长度分块前按空行(段落边界)拆分。channels.nextcloud-talk.blockStreaming:是否对本频道禁用块流式。channels.nextcloud-talk.blockStreamingCoalesce:块流式合并调优。channels.nextcloud-talk.mediaMaxMb:入站媒体上限(MB)。
最后更新于: