@openclaw/nextcloud-talk) che collega OpenClaw a un’istanza Nextcloud self-hosted tramite un bot webhook di Talk. Sono supportati messaggi diretti, stanze, reazioni e messaggi Markdown; i contenuti multimediali vengono inviati come URL.
Installazione
Configurazione rapida (principianti)
- Installare il plugin (sopra).
-
Sul server Nextcloud, creare un bot:
Mantenere
--feature response: senza questa opzione, le risposte in uscita restituiscono l’errore 401. Riparare un bot esistente con./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1. - Abilitare il bot nelle impostazioni della stanza di destinazione.
-
Configurare OpenClaw:
- Configurazione:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Oppure variabili d’ambiente:
NEXTCLOUD_TALK_BOT_SECRET(solo account predefinito)
--url/--tokensono alias dei campi espliciti;nc-talkencfunzionano come alias del canale):Campi espliciti equivalenti:Segreto memorizzato in un file: - Configurazione:
- Riavviare il Gateway (o completare la configurazione).
Note
- I bot non possono avviare messaggi diretti. L’utente deve prima inviare un messaggio al bot.
- L’URL del webhook deve essere raggiungibile dal server Nextcloud; impostare
webhookPublicUrlquando il Gateway si trova dietro un proxy. Le richieste webhook sono firmate con HMAC-SHA256 usando il segreto del bot; le firme non valide vengono rifiutate e sottoposte a limitazione della frequenza. - I caricamenti di contenuti multimediali non sono supportati dall’API del bot; i contenuti multimediali in uscita vengono aggiunti come riga
Attachment: <url>. - Il payload del webhook non distingue i messaggi diretti dalle stanze; impostare
apiUser+apiPasswordper abilitare le ricerche del tipo di stanza (memorizzate nella cache per circa 5 minuti). Senza questi valori, ogni conversazione viene trattata come una stanza. - Le richieste in uscita passano attraverso la protezione SSRF. Per un host Nextcloud su una rete privata/interna attendibile, abilitarne l’accesso con
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: true. - Con
apiUser/apiPasswordewebhookPublicUrlimpostati,openclaw channels statusverifica il bot e avvisa quando manca la funzionalitàresponse.
Controllo degli accessi (messaggi diretti)
- Valore predefinito:
channels.nextcloud-talk.dmPolicy = "pairing". I mittenti sconosciuti ricevono un codice di associazione. - Approvare tramite:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- Messaggi diretti pubblici:
channels.nextcloud-talk.dmPolicy="open"piùchannels.nextcloud-talk.allowFrom=["*"]. allowFromcorrisponde solo agli ID utente Nextcloud (in minuscolo); i nomi visualizzati vengono ignorati.
Stanze (gruppi)
- Valore predefinito:
channels.nextcloud-talk.groupPolicy = "allowlist"(richiede una menzione). - Consentire le stanze con
channels.nextcloud-talk.rooms, indicizzate per token della stanza;"*"imposta un valore predefinito con carattere jolly:
- Chiavi per stanza:
requireMention(valore predefinito true),enabled(false disabilita la stanza),allowFrom(elenco dei mittenti consentiti per la stanza),tools(sostituzioni di autorizzazione/negazione degli strumenti),skills(limita le Skills caricate),systemPrompt. - Per non consentire alcuna stanza, mantenere vuoto l’elenco degli elementi consentiti oppure impostare
channels.nextcloud-talk.groupPolicy="disabled".
Funzionalità
Riferimento per la configurazione (Nextcloud Talk)
Configurazione completa: Configurazione Opzioni del provider:channels.nextcloud-talk.enabled: abilita/disabilita l’avvio del canale.channels.nextcloud-talk.baseUrl: URL dell’istanza Nextcloud.channels.nextcloud-talk.botSecret: segreto condiviso del bot (stringa o riferimento a un segreto).channels.nextcloud-talk.botSecretFile: percorso del segreto in un file normale. I collegamenti simbolici vengono rifiutati.channels.nextcloud-talk.apiUser: utente API per la ricerca delle stanze (rilevamento dei messaggi diretti) e la verifica dello stato.channels.nextcloud-talk.apiPassword: password API/dell’app per la ricerca delle stanze.channels.nextcloud-talk.apiPasswordFile: percorso del file della password API.channels.nextcloud-talk.webhookPort: porta del listener webhook (valore predefinito: 8788).channels.nextcloud-talk.webhookHost: host del webhook (valore predefinito: 0.0.0.0).channels.nextcloud-talk.webhookPath: percorso del webhook (valore predefinito: /nextcloud-talk-webhook).channels.nextcloud-talk.webhookPublicUrl: URL del webhook raggiungibile dall’esterno.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(valore predefinito: associazione).openrichiedeallowFrom=["*"].channels.nextcloud-talk.allowFrom: elenco dei messaggi diretti consentiti (ID utente).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(valore predefinito: elenco degli elementi consentiti).channels.nextcloud-talk.groupAllowFrom: elenco dei mittenti consentiti nelle stanze (ID utente); se non impostato, utilizzaallowFrom.channels.nextcloud-talk.rooms: impostazioni ed elenco degli elementi consentiti per stanza (vedere sopra).- I gruppi statici di accesso dei mittenti possono essere richiamati da
allowFromegroupAllowFromconaccessGroup:<name>. channels.nextcloud-talk.historyLimit: limite della cronologia dei gruppi (0 la disabilita).channels.nextcloud-talk.dmHistoryLimit: limite della cronologia dei messaggi diretti (0 la disabilita).channels.nextcloud-talk.dms: sostituzioni per messaggio diretto indicizzate per ID utente (historyLimit).channels.nextcloud-talk.textChunkLimit: dimensione dei segmenti di testo in uscita in caratteri (valore predefinito: 4000).channels.nextcloud-talk.streaming.chunkMode:length(valore predefinito) onewlineper suddividere in corrispondenza delle righe vuote (limiti dei paragrafi) prima della segmentazione per lunghezza.channels.nextcloud-talk.streaming.block.enabled: abilita o disabilita lo streaming a blocchi per questo canale.channels.nextcloud-talk.streaming.block.coalesce: regolazione dell’unione nello streaming a blocchi.channels.nextcloud-talk.responsePrefix: prefisso delle risposte in uscita.channels.nextcloud-talk.markdown.tables: modalità di rendering delle tabelle Markdown (off | bullets | code | block).channels.nextcloud-talk.mediaMaxMb: limite dei contenuti multimediali in ingresso (MB).channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: consente agli host Nextcloud privati/interni di superare la protezione SSRF.channels.nextcloud-talk.accounts.<id>: sostituzioni per account (stesse chiavi);defaultAccountseleziona il valore predefinito. Le variabili d’ambienteNEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDsi applicano solo all’account predefinito.
Argomenti correlati
- Panoramica dei canali — tutti i canali supportati
- Associazione — autenticazione dei messaggi diretti e flusso di associazione
- Gruppi — comportamento delle chat di gruppo e requisito di menzione
- Instradamento dei canali — instradamento delle sessioni per i messaggi
- Sicurezza — modello di accesso e rafforzamento della sicurezza