Nextcloud Talk(外掛)

狀態:透過外掛支援(webhook 機器人)。支援私訊、房間、表情回應和 Markdown 訊息。

需要外掛

Nextcloud Talk 以外掛形式提供,不包含在核心安裝中。

透過 CLI(npm 套件庫)安裝:

openclaw plugins install @openclaw/nextcloud-talk

本機 checkout(在 git repo 中開發):

openclaw plugins install ./extensions/nextcloud-talk

如果你在設定/引導設定時選擇 Nextcloud Talk 且偵測到 git checkout,OpenClaw 會自動提供本機安裝路徑。

詳情:外掛

快速設定(入門)

  1. 安裝 Nextcloud Talk 外掛。

  2. 在你的 Nextcloud 伺服器上建立機器人:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. 在目標房間設定中啟用機器人。

  4. 設定 OpenClaw:

    • 設定:channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • 或環境變數:NEXTCLOUD_TALK_BOT_SECRET(僅限預設帳號)
  5. 重啟 Gateway(或完成引導設定)。

最小設定:

{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      baseUrl: "https://cloud.example.com",
      botSecret: "shared-secret",
      dmPolicy: "pairing",
    },
  },
}

備註

  • 機器人無法主動發起私訊。使用者必須先向機器人發送訊息。
  • Webhook URL 必須可被 Gateway 存取;如果在代理之後,請設定 webhookPublicUrl
  • Bot API 不支援媒體上傳;媒體以 URL 形式發送。
  • Webhook 負載不區分私訊和房間;設定 apiUser + apiPassword 以啟用房間類型查詢(否則私訊會被視為房間)。

存取控制(私訊)

  • 預設:channels.nextcloud-talk.dmPolicy = "pairing"。未知發送者會收到配對代碼。
  • 核准方式:
    • openclaw pairing list nextcloud-talk
    • openclaw 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 },
      },
    },
  },
}
  • 若不允許任何房間,保持許可清單為空或設定 channels.nextcloud-talk.groupPolicy="disabled"

功能

功能狀態
私訊支援
房間支援
討論串不支援
媒體僅 URL
表情回應支援
原生指令不支援

設定參考(Nextcloud Talk)

完整設定:設定

供應商選項:

  • channels.nextcloud-talk.enabled:啟用/停用頻道啟動。
  • channels.nextcloud-talk.baseUrl:Nextcloud 實體 URL。
  • channels.nextcloud-talk.botSecret:機器人共用 secret。
  • channels.nextcloud-talk.botSecretFile:一般檔案 secret 路徑。符號連結會被拒絕。
  • 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.dmPolicypairing | allowlist | open | disabled
  • channels.nextcloud-talk.allowFrom:私訊許可清單(使用者 ID)。open 需要 "*"
  • channels.nextcloud-talk.groupPolicyallowlist | 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.chunkModelength(預設)或 newline,在長度分段前先按空白行(段落邊界)分割。
  • channels.nextcloud-talk.blockStreaming:停用此頻道的區塊串流。
  • channels.nextcloud-talk.blockStreamingCoalesce:區塊串流合併調整。
  • channels.nextcloud-talk.mediaMaxMb:接收媒體上限(MB)。