Di halaman ini
Di halaman ini
Developer and self-hosted
Nextcloud Talk
Nextcloud Talk adalah plugin saluran yang dapat diunduh (@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
Gunakan spesifikasi paket tanpa versi untuk mengikuti tag rilis resmi saat ini. Sematkan versi persis hanya jika Anda memerlukan instalasi yang dapat direproduksi.
Dari checkout lokal (alur kerja pengembangan):
Mulai ulang Gateway setelah menginstal. Detail: Plugin
Penyiapan cepat (pemula)
-
Instal plugin (di atas).
-
Di server Nextcloud Anda, buat bot:
bash 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)
Penyiapan CLI (
--url/--tokenadalah alias untuk bidang eksplisit;nc-talkdanncberfungsi sebagai alias saluran):bash Bidang eksplisit yang setara:
bash Rahasia berbasis berkas:
bash - Konfigurasi:
-
Mulai ulang Gateway (atau selesaikan penyiapan).
Konfigurasi minimal:
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
| Fitur | Status |
|---|---|
| Pesan langsung | Didukung |
| Ruang | Didukung |
| Utas | Tidak didukung |
| Media | Hanya URL |
| Reaksi | Didukung |
| Perintah native | Tidak didukung |
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