Developer and self-hosted
Nextcloud Talk
Nextcloud Talk 是一個可下載的頻道外掛(@openclaw/nextcloud-talk),透過 Talk 網路鉤子機器人將 OpenClaw 連接至自行託管的 Nextcloud 執行個體。支援私訊、聊天室、回應和 Markdown 訊息;媒體會以 URL 形式傳送。
安裝
openclaw plugins install @openclaw/nextcloud-talk使用不含版本的套件規格,以跟隨目前的官方發行標籤。只有在需要可重現的安裝時,才鎖定確切版本。
從本機簽出安裝(開發工作流程):
openclaw plugins install ./path/to/local/nextcloud-talk-plugin安裝後重新啟動閘道。詳細資訊:外掛
快速設定(初學者)
-
安裝外掛(如上所述)。
-
在你的 Nextcloud 伺服器上建立機器人:
bash ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature webhook --feature response --feature reaction保留
--feature response:若沒有它,外送回覆會因 401 而失敗。使用./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1修復現有機器人。 -
在目標聊天室設定中啟用機器人。
-
設定 OpenClaw:
- 設定:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - 或使用環境變數:
NEXTCLOUD_TALK_BOT_SECRET(僅限預設帳號)
命令列介面設定(
--url/--token是明確欄位的別名;nc-talk和nc可作為頻道別名):bash openclaw channels add --channel nextcloud-talk \ --url https://cloud.example.com \ --token "<shared-secret>"等效的明確欄位:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret "<shared-secret>"以檔案為基礎的祕密:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret-file /path/to/nextcloud-talk-secret - 設定:
-
重新啟動閘道(或完成設定)。
最小設定:
{ channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, },}注意事項
- 機器人無法主動發起私訊。使用者必須先傳訊息給機器人。
- Nextcloud 伺服器必須能連線至網路鉤子 URL;當閘道位於 Proxy 後方時,請設定
webhookPublicUrl。網路鉤子要求會使用機器人祕密以 HMAC-SHA256 簽署;無效簽章會遭拒絕並受到速率限制。 - 機器人 API 不支援媒體上傳;外送媒體會附加為
Attachment: <url>行。 - 網路鉤子承載資料無法區分私訊和聊天室;設定
apiUser+apiPassword可啟用聊天室類型查詢(快取約 5 分鐘)。若未設定,每個對話都會被視為聊天室。 - 外送要求會通過 SSRF 防護。若 Nextcloud 主機位於受信任的私人/內部網路,請使用
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: true明確允許。 - 設定
apiUser/apiPassword和webhookPublicUrl後,openclaw channels status會探測機器人,並在缺少response功能時發出警告。
存取控制(私訊)
- 預設值:
channels.nextcloud-talk.dmPolicy = "pairing"。未知傳送者會收到配對碼。 - 核准方式:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- 公開私訊:
channels.nextcloud-talk.dmPolicy="open"加上channels.nextcloud-talk.allowFrom=["*"]。 allowFrom僅比對 Nextcloud 使用者 ID(轉為小寫);顯示名稱會被忽略。
聊天室(群組)
- 預設值:
channels.nextcloud-talk.groupPolicy = "allowlist"(需要提及才會觸發)。 - 使用
channels.nextcloud-talk.rooms將聊天室加入允許清單,並以聊天室權杖作為索引鍵;"*"可設定萬用字元預設值:
{ channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, },}- 每個聊天室的索引鍵:
requireMention(預設為 true)、enabled(false 會停用聊天室)、allowFrom(每個聊天室的傳送者允許清單)、tools(允許/拒絕工具覆寫)、skills(限制載入的 Skills)、systemPrompt。 - 若不允許任何聊天室,請將允許清單留空或設定
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:網路鉤子接聽連接埠(預設值:8788)。channels.nextcloud-talk.webhookHost:網路鉤子主機(預設值:0.0.0.0)。channels.nextcloud-talk.webhookPath:網路鉤子路徑(預設值:/nextcloud-talk-webhook)。channels.nextcloud-talk.webhookPublicUrl:外部可連線的網路鉤子 URL。channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(預設值:配對)。open需要allowFrom=["*"]。channels.nextcloud-talk.allowFrom:私訊允許清單(使用者 ID)。channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(預設值:允許清單)。channels.nextcloud-talk.groupAllowFrom:聊天室傳送者允許清單(使用者 ID);若未設定,會退回使用allowFrom。channels.nextcloud-talk.rooms:每個聊天室的設定和允許清單(請參閱上文)。- 靜態傳送者存取群組可透過
accessGroup:<name>,從allowFrom和groupAllowFrom參照。 channels.nextcloud-talk.historyLimit:群組歷史記錄上限(0 表示停用)。channels.nextcloud-talk.dmHistoryLimit:私訊歷史記錄上限(0 表示停用)。channels.nextcloud-talk.dms:以使用者 ID 作為索引鍵的每則私訊覆寫(historyLimit)。channels.nextcloud-talk.textChunkLimit:外送文字區塊的字元大小(預設值:4000)。channels.nextcloud-talk.streaming.chunkMode:使用length(預設值),或使用newline,在依長度分割前先按空白行(段落邊界)分割。channels.nextcloud-talk.streaming.block.enabled:啟用或停用此頻道的區塊串流。channels.nextcloud-talk.streaming.block.coalesce:區塊串流合併調整。channels.nextcloud-talk.responsePrefix:外送回覆前置字串。channels.nextcloud-talk.markdown.tables:Markdown 表格呈現模式(off | bullets | code | block)。channels.nextcloud-talk.mediaMaxMb:傳入媒體上限(MB)。channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork:允許私人/內部 Nextcloud 主機通過 SSRF 防護。channels.nextcloud-talk.accounts.<id>:每個帳號的覆寫(相同索引鍵);defaultAccount會選擇預設帳號。環境變數NEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORD僅套用至預設帳號。
相關內容
Was this useful?