@openclaw/nextcloud-talk) yang menghubungkan OpenClaw ke instans Nextcloud yang dihosting sendiri melalui bot Webhook Talk. Pesan langsung, ruang, reaksi, dan pesan markdown didukung; media dikirim sebagai URL.
Instalasi
Penyiapan cepat (pemula)
- Instal plugin (di atas).
-
Di server Nextcloud Anda, buat bot:
Pertahankan
--feature response: tanpanya, balasan keluar gagal dengan 401. Perbaiki bot yang sudah ada dengan./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1. - Aktifkan bot di pengaturan ruang tujuan.
-
Konfigurasikan OpenClaw:
- Konfigurasi:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Atau variabel lingkungan:
NEXTCLOUD_TALK_BOT_SECRET(khusus akun default)
--url/--tokenadalah alias untuk bidang eksplisit;nc-talkdanncberfungsi sebagai alias saluran):Bidang eksplisit yang setara:Rahasia berbasis berkas: - Konfigurasi:
- Mulai ulang Gateway (atau selesaikan penyiapan).
Catatan
- Bot tidak dapat memulai DM. Pengguna harus mengirim pesan kepada bot terlebih dahulu.
- URL Webhook harus dapat dijangkau dari server Nextcloud; atur
webhookPublicUrlsaat Gateway berada di belakang proksi. Permintaan Webhook ditandatangani dengan HMAC-SHA256 menggunakan rahasia bot; tanda tangan yang tidak valid ditolak dan dikenai pembatasan laju. - Unggahan media tidak didukung oleh API bot; media keluar ditambahkan sebagai baris
Attachment: <url>. - Payload Webhook tidak membedakan DM dari ruang; atur
apiUser+apiPassworduntuk mengaktifkan pencarian jenis ruang (di-cache sekitar 5 menit). Tanpa keduanya, setiap percakapan diperlakukan sebagai ruang. - Permintaan keluar melewati pengaman SSRF. Untuk host Nextcloud pada jaringan privat/internal tepercaya, ikut sertakan dengan
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: true. - Jika
apiUser/apiPassworddanwebhookPublicUrlditetapkan,openclaw channels statusmemeriksa bot dan memperingatkan ketika fiturresponsetidak tersedia.
Kontrol akses (DM)
- Default:
channels.nextcloud-talk.dmPolicy = "pairing". Pengirim yang tidak dikenal menerima kode penyandingan. - Setujui melalui:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- DM publik:
channels.nextcloud-talk.dmPolicy="open"ditambahchannels.nextcloud-talk.allowFrom=["*"]. allowFromhanya mencocokkan ID pengguna Nextcloud (huruf kecil); nama tampilan diabaikan.
Ruang (grup)
- Default:
channels.nextcloud-talk.groupPolicy = "allowlist"(memerlukan penyebutan). - Izinkan ruang dengan
channels.nextcloud-talk.rooms, yang dikunci berdasarkan token ruang;"*"menetapkan default karakter pengganti:
- Kunci per ruang:
requireMention(default true),enabled(false menonaktifkan ruang),allowFrom(daftar pengirim yang diizinkan per ruang),tools(penggantian izin/tolak alat),skills(membatasi Skills yang dimuat),systemPrompt. - Agar tidak mengizinkan ruang apa pun, biarkan daftar izin kosong atau atur
channels.nextcloud-talk.groupPolicy="disabled".
Kemampuan
Referensi konfigurasi (Nextcloud Talk)
Konfigurasi lengkap: Konfigurasi Opsi penyedia:channels.nextcloud-talk.enabled: aktifkan/nonaktifkan pengaktifan saluran.channels.nextcloud-talk.baseUrl: URL instans Nextcloud.channels.nextcloud-talk.botSecret: rahasia bersama bot (string atau referensi rahasia).channels.nextcloud-talk.botSecretFile: jalur rahasia berkas reguler. Tautan simbolis ditolak.channels.nextcloud-talk.apiUser: pengguna API untuk pencarian ruang (deteksi DM) dan pemeriksaan status.channels.nextcloud-talk.apiPassword: kata sandi API/aplikasi untuk pencarian ruang.channels.nextcloud-talk.apiPasswordFile: jalur berkas kata sandi API.channels.nextcloud-talk.webhookPort: port pendengar Webhook (default: 8788).channels.nextcloud-talk.webhookHost: host Webhook (default: 0.0.0.0).channels.nextcloud-talk.webhookPath: jalur Webhook (default: /nextcloud-talk-webhook).channels.nextcloud-talk.webhookPublicUrl: URL Webhook yang dapat dijangkau secara eksternal.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(default: pairing).openmemerlukanallowFrom=["*"].channels.nextcloud-talk.allowFrom: daftar DM yang diizinkan (ID pengguna).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(default: allowlist).channels.nextcloud-talk.groupAllowFrom: daftar pengirim ruang yang diizinkan (ID pengguna); menggunakanallowFromsebagai cadangan jika tidak ditetapkan.channels.nextcloud-talk.rooms: pengaturan per ruang dan daftar izin (lihat di atas).- Grup akses pengirim statis dapat dirujuk dari
allowFromdangroupAllowFromdenganaccessGroup:<name>. channels.nextcloud-talk.historyLimit: batas riwayat grup (0 menonaktifkan).channels.nextcloud-talk.dmHistoryLimit: batas riwayat DM (0 menonaktifkan).channels.nextcloud-talk.dms: penggantian per DM yang dikunci berdasarkan ID pengguna (historyLimit).channels.nextcloud-talk.textChunkLimit: ukuran potongan teks keluar dalam karakter (default: 4000).channels.nextcloud-talk.streaming.chunkMode:length(default) ataunewlineuntuk memisahkan pada baris kosong (batas paragraf) sebelum pemotongan berdasarkan panjang.channels.nextcloud-talk.streaming.block.enabled: aktifkan atau nonaktifkan streaming blok untuk saluran ini.channels.nextcloud-talk.streaming.block.coalesce: penyetelan penggabungan streaming blok.channels.nextcloud-talk.responsePrefix: prefiks balasan keluar.channels.nextcloud-talk.markdown.tables: mode perenderan tabel markdown (off | bullets | code | block).channels.nextcloud-talk.mediaMaxMb: batas media masuk (MB).channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: izinkan host Nextcloud privat/internal melewati pengaman SSRF.channels.nextcloud-talk.accounts.<id>: penggantian per akun (kunci yang sama);defaultAccountmemilih akun default. Variabel lingkunganNEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDhanya berlaku untuk akun default.
Terkait
- Ikhtisar Saluran — semua saluran yang didukung
- Penyandingan — autentikasi DM dan alur penyandingan
- Grup — perilaku obrolan grup dan persyaratan penyebutan
- Perutean Saluran — perutean sesi untuk pesan
- Keamanan — model akses dan penguatan