OpenClaw Nextcloud Talk 頻道
將 OpenClaw 連接至 Nextcloud Talk——這是一個內建於 Nextcloud 生態系統中、注重隱私的企業通訊平台。整合採用基於 Webhook 的機器人架構——Nextcloud Talk 透過 Webhook 將訊息事件傳送至您的 Gateway,機器人再透過 Talk REST API 回覆。這讓您的 AI 助手能在自架的 Nextcloud 環境中參與私訊、群組對話,以及使用表情回應訊息。
Nextcloud Talk 支援功能
文字訊息
支援
媒體與檔案
支援
表情回應
支援
討論串
不支援
語音訊息
不支援
群組聊天
支援
Nextcloud Talk 前置條件
- 一台 Nextcloud 伺服器(v27.1+),具有管理員權限且已安裝 Talk 應用程式
- 一組共享金鑰(40-128 個字元),用於 Webhook 簽名驗證
- Gateway 的 Webhook 端點可從 Nextcloud 伺服器存取(公開 URL 或內部網路)
- OpenClaw Gateway 已安裝並執行
- 已透過 'openclaw plugins install @openclaw/nextcloud-talk' 安裝 Nextcloud Talk 外掛
Nextcloud Talk 快速設定
安裝 Nextcloud Talk 外掛
執行 'openclaw plugins install @openclaw/nextcloud-talk' 為您的 Gateway 新增 Nextcloud Talk 支援。
在 Nextcloud 伺服器上註冊機器人
透過 SSH 登入您的 Nextcloud 伺服器並執行 OCC 指令:./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction。將 <shared-secret> 替換為一組強度足夠的 40 個字元以上的金鑰,將 <webhook-url> 替換為 Gateway 可公開存取的 Webhook 端點(例如 https://gateway.example.com:8788/webhook)。
啟用機器人並進行設定
在 Nextcloud Talk 中,前往房間設定並啟用 OpenClaw 機器人。然後在 ~/.openclaw/openclaw.json 中新增頻道設定,填入您的 baseUrl 和 botSecret。使用 'openclaw start' 啟動 Gateway,並在房間中傳送一則訊息以驗證連線。
Nextcloud Talk 設定範例
{
"channels": {
"nextcloud-talk": {
"enabled": true,
"baseUrl": "https://nextcloud.example.com",
"botSecret": "your-shared-secret-min-40-chars",
"dmPolicy": "pairing"
}
}
}Nextcloud Talk 深入了解
架構概述
透過 OCC 註冊機器人
./occ talk:bot:install "OpenClaw" "a]72@Bz&V!LKMO*xhQib7p^E%yzGMG(8a7Bp*x6o" "https://gateway.example.com:8788/webhook" --feature reaction私訊策略
{
"channels": {
"nextcloud-talk": {
"dmPolicy": "pairing",
"allowFrom": ["user-id-1", "user-id-2"]
}
}
}房間設定
{
"channels": {
"nextcloud-talk": {
"groupPolicy": "allowlist",
"rooms": {
"abc123token": {
"requireMention": true
},
"def456token": {
"requireMention": false
}
}
}
}
}用於房間偵測的 API 憑證
{
"channels": {
"nextcloud-talk": {
"apiUser": "bot-service-account",
"apiPassword": "service-account-password",
"apiPasswordFile": "/run/secrets/nc-api-password"
}
}
}Webhook 設定
{
"channels": {
"nextcloud-talk": {
"webhookPort": 8788,
"webhookHost": "0.0.0.0",
"webhookPath": "/webhook",
"webhookPublicUrl": "https://gateway.example.com:8788/webhook"
}
}
}訊息處理與串流
{
"channels": {
"nextcloud-talk": {
"textChunkLimit": 4000,
"chunkMode": "newline",
"blockStreaming": true,
"blockStreamingCoalesce": true,
"mediaMaxMb": 10
}
}
}對話歷史紀錄
{
"channels": {
"nextcloud-talk": {
"historyLimit": 20,
"dmHistoryLimit": 50
}
}
}表情回應支援
安全性與 Webhook 簽名
Nextcloud Talk 設定參考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 啟用或停用 Nextcloud Talk 頻道 |
| baseUrl | string | "" | Nextcloud 伺服器的完整 URL(例如 https://nextcloud.example.com) |
| botSecret | string | "" | 用於 Webhook 簽名驗證的共享金鑰(必須與 OCC 安裝時的金鑰一致) |
| botSecretFile | string | "" | 包含共享金鑰的檔案路徑(作為內嵌 botSecret 的替代方案) |
| apiUser | string | "" | 用於 API 呼叫的 Nextcloud 使用者名稱(用於房間類型偵測) |
| apiPassword | string | "" | API 使用者帳號的密碼 |
| apiPasswordFile | string | "" | 包含 API 密碼的檔案路徑(作為內嵌 apiPassword 的替代方案) |
| dmPolicy | string | "pairing" | 私訊存取策略:'pairing'(驗證碼)、'open'(任何使用者)或 'disabled'(停用私訊) |
| allowFrom | string[] | [] | 允許向機器人傳送私訊的 Nextcloud 使用者 ID(使用 ["*"] 開放所有存取) |
| groupPolicy | string | "allowlist" | 房間存取策略:'allowlist'(僅限管理員啟用的房間) |
| webhookPort | number | 8788 | 內建 Webhook HTTP 伺服器的連接埠 |
| webhookHost | string | "0.0.0.0" | Webhook 伺服器綁定的網路介面 |
| webhookPath | string | "/webhook" | Webhook 端點的 URL 路徑 |
| webhookPublicUrl | string | "" | Webhook 端點的完整公開 URL(在反向代理後面時為必填) |
| historyLimit | number | 20 | 房間對話中作為上下文包含的先前訊息最大數量 |
| dmHistoryLimit | number | 50 | 私訊對話中作為上下文包含的先前訊息最大數量 |
| textChunkLimit | number | 4000 | 每則訊息分段的最大字元數 |
| chunkMode | string | "length" | 文字分割模式:'length'(字元限制)或 'newline'(段落邊界) |
| blockStreaming | boolean | false | 等待完整的 AI 回覆後再傳送(不串流) |
| blockStreamingCoalesce | boolean | false | 將串流分段合併為一則最終訊息 |
| mediaMaxMb | number | 10 | 媒體 URL 參照的最大檔案大小(MB) |
啟用或停用 Nextcloud Talk 頻道
Nextcloud 伺服器的完整 URL(例如 https://nextcloud.example.com)
用於 Webhook 簽名驗證的共享金鑰(必須與 OCC 安裝時的金鑰一致)
包含共享金鑰的檔案路徑(作為內嵌 botSecret 的替代方案)
用於 API 呼叫的 Nextcloud 使用者名稱(用於房間類型偵測)
API 使用者帳號的密碼
包含 API 密碼的檔案路徑(作為內嵌 apiPassword 的替代方案)
私訊存取策略:'pairing'(驗證碼)、'open'(任何使用者)或 'disabled'(停用私訊)
允許向機器人傳送私訊的 Nextcloud 使用者 ID(使用 ["*"] 開放所有存取)
房間存取策略:'allowlist'(僅限管理員啟用的房間)
內建 Webhook HTTP 伺服器的連接埠
Webhook 伺服器綁定的網路介面
Webhook 端點的 URL 路徑
Webhook 端點的完整公開 URL(在反向代理後面時為必填)
房間對話中作為上下文包含的先前訊息最大數量
私訊對話中作為上下文包含的先前訊息最大數量
每則訊息分段的最大字元數
文字分割模式:'length'(字元限制)或 'newline'(段落邊界)
等待完整的 AI 回覆後再傳送(不串流)
將串流分段合併為一則最終訊息
媒體 URL 參照的最大檔案大小(MB)
Nextcloud Talk 常見問題
Nextcloud Talk 故障排除
Webhook URL 無法存取、機器人未在房間中啟用,或共享金鑰不匹配。
openclaw.json 中的共享金鑰與機器人安裝時使用的金鑰不匹配。
管理員未在目標房間中啟用機器人,或 requireMention 為 true 但機器人未被 @提及。
未設定 API 憑證(apiUser、apiPassword)。
設定的 Webhook 連接埠已被佔用或主機綁定無效。