Nextcloud Talk (plugin)

Trạng thái: được hỗ trợ qua plugin (webhook bot). Hỗ trợ tin nhắn trực tiếp, phòng chat, reaction và tin nhắn markdown.

Cần cài plugin

Nextcloud Talk được cung cấp dưới dạng plugin và không đi kèm với bản cài đặt core.

Cài đặt qua CLI (npm registry):

openclaw plugins install @openclaw/nextcloud-talk

Cài từ local (khi chạy từ git repo):

openclaw plugins install ./extensions/nextcloud-talk

Nếu các bạn chọn Nextcloud Talk trong quá trình configure/onboarding và phát hiện có git checkout, OpenClaw sẽ tự động đề xuất đường dẫn cài đặt local.

Chi tiết: Plugins

Cài đặt nhanh (dành cho người mới)

  1. Cài plugin Nextcloud Talk.
  2. Trên Nextcloud server của các bạn, tạo bot:
    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Bật bot trong cài đặt phòng chat mục tiêu.
  4. Cấu hình OpenClaw:
    • Config: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Hoặc dùng env: NEXTCLOUD_TALK_BOT_SECRET (chỉ cho tài khoản mặc định)
  5. Khởi động lại Gateway (hoặc hoàn tất onboarding).

Config tối thiểu:

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

Lưu ý

  • Bot không thể bắt đầu DM trước. Người dùng phải nhắn tin cho bot trước.
  • Webhook URL phải có thể truy cập được từ Gateway; đặt webhookPublicUrl nếu đứng sau proxy.
  • Bot API không hỗ trợ upload media; media sẽ được gửi dưới dạng URL.
  • Webhook payload không phân biệt DM và phòng chat; đặt apiUser + apiPassword để bật tính năng tra cứu loại phòng (nếu không DM sẽ được xử lý như phòng chat).

Kiểm soát truy cập (DM)

  • Mặc định: channels.nextcloud-talk.dmPolicy = "pairing". Người gửi lạ sẽ nhận mã pairing.
  • Phê duyệt qua:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • DM công khai: channels.nextcloud-talk.dmPolicy="open" cộng với channels.nextcloud-talk.allowFrom=["*"].

Phòng chat (nhóm)

  • Mặc định: channels.nextcloud-talk.groupPolicy = "allowlist" (yêu cầu mention).
  • Thêm phòng vào allowlist với channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Để không cho phép phòng nào, giữ allowlist trống hoặc đặt channels.nextcloud-talk.groupPolicy="disabled".

Tính năng

Tính năngTrạng thái
Tin nhắn trực tiếpHỗ trợ
Phòng chatHỗ trợ
ThreadChưa hỗ trợ
MediaChỉ URL
ReactionHỗ trợ
Lệnh gốcChưa hỗ trợ

Tham khảo cấu hình (Nextcloud Talk)

Cấu hình đầy đủ: Configuration

Các tùy chọn provider:

  • channels.nextcloud-talk.enabled: bật/tắt khởi động channel.
  • channels.nextcloud-talk.baseUrl: URL instance Nextcloud.
  • channels.nextcloud-talk.botSecret: shared secret của bot.
  • channels.nextcloud-talk.botSecretFile: đường dẫn file secret.
  • channels.nextcloud-talk.apiUser: API user để tra cứu phòng (phát hiện DM).
  • channels.nextcloud-talk.apiPassword: API/app password để tra cứu phòng.
  • channels.nextcloud-talk.apiPasswordFile: đường dẫn file API password.
  • channels.nextcloud-talk.webhookPort: cổng webhook listener (mặc định: 8788).
  • channels.nextcloud-talk.webhookHost: host webhook (mặc định: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: đường dẫn webhook (mặc định: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: URL webhook có thể truy cập từ bên ngoài.
  • channels.nextcloud-talk.dmPolicy: pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom: allowlist DM (user ID). open yêu cầu "*".
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: allowlist nhóm (user ID).
  • channels.nextcloud-talk.rooms: cài đặt từng phòng và allowlist.
  • channels.nextcloud-talk.historyLimit: giới hạn lịch sử nhóm (0 để tắt).
  • channels.nextcloud-talk.dmHistoryLimit: giới hạn lịch sử DM (0 để tắt).
  • channels.nextcloud-talk.dms: ghi đè cài đặt từng DM (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: kích thước chunk text gửi đi (ký tự).
  • channels.nextcloud-talk.chunkMode: length (mặc định) hoặc newline để tách theo dòng trống (ranh giới đoạn văn) trước khi tách theo độ dài.
  • channels.nextcloud-talk.blockStreaming: tắt block streaming cho channel này.
  • channels.nextcloud-talk.blockStreamingCoalesce: điều chỉnh block streaming coalesce.
  • channels.nextcloud-talk.mediaMaxMb: giới hạn media đầu vào (MB).