OpenClaw Nextcloud Talk Kanal
Verbinden Sie OpenClaw mit Nextcloud Talk, der datenschutzorientierten Unternehmenskommunikationsplattform im Nextcloud-Oekosystem. Die Integration nutzt eine webhook-basierte Bot-Architektur -- Nextcloud Talk sendet Nachrichtenereignisse ueber Webhooks an Ihr Gateway, und der Bot antwortet ueber die Talk REST API. So kann Ihr KI-Assistent an Direktnachrichten und Raumkonversationen teilnehmen sowie auf Nachrichten mit Emoji reagieren -- alles innerhalb Ihrer selbst gehosteten Nextcloud-Umgebung.
Nextcloud Talk Unterstützte Funktionen
Textnachrichten
Unterstützt
Medien & Dateien
Unterstützt
Reaktionen
Unterstützt
Threads
Nicht unterstützt
Sprachnachrichten
Nicht unterstützt
Gruppenchat
Unterstützt
Nextcloud Talk Voraussetzungen
- Ein Nextcloud-Server (v27.1+) mit Administratorzugang und installierter Talk-App
- Ein gemeinsames Geheimnis (40-128 Zeichen) zur Webhook-Signaturvalidierung
- Der Webhook-Endpunkt des Gateways muss vom Nextcloud-Server aus erreichbar sein (oeffentliche URL oder internes Netzwerk)
- OpenClaw Gateway installiert und betriebsbereit
- Das Nextcloud Talk Plugin installiert via 'openclaw plugins install @openclaw/nextcloud-talk'
Nextcloud Talk Schnelleinrichtung
Nextcloud Talk Plugin installieren
Fuehren Sie 'openclaw plugins install @openclaw/nextcloud-talk' aus, um Nextcloud Talk-Unterstuetzung zu Ihrem Gateway hinzuzufuegen.
Bot auf Ihrem Nextcloud-Server registrieren
Verbinden Sie sich per SSH mit Ihrem Nextcloud-Server und fuehren Sie den OCC-Befehl aus: ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction. Ersetzen Sie <shared-secret> durch ein starkes Geheimnis mit mindestens 40 Zeichen und <webhook-url> durch den oeffentlich erreichbaren Webhook-Endpunkt des Gateways (z.B. https://gateway.example.com:8788/webhook).
Bot aktivieren und konfigurieren
Gehen Sie in Nextcloud Talk zu den Raumeinstellungen und aktivieren Sie den OpenClaw-Bot. Fuegen Sie dann die Kanalkonfiguration in ~/.openclaw/openclaw.json mit Ihrer baseUrl und botSecret hinzu. Starten Sie das Gateway mit 'openclaw start' und senden Sie eine Nachricht im Raum, um die Verbindung zu ueberpruefen.
Nextcloud Talk Konfigurationsbeispiel
{
"channels": {
"nextcloud-talk": {
"enabled": true,
"baseUrl": "https://nextcloud.example.com",
"botSecret": "your-shared-secret-min-40-chars",
"dmPolicy": "pairing"
}
}
}Nextcloud Talk Detaillierte Dokumentation
Architekturuebersicht
Bot-Registrierung ueber OCC
./occ talk:bot:install "OpenClaw" "a]72@Bz&V!LKMO*xhQib7p^E%yzGMG(8a7Bp*x6o" "https://gateway.example.com:8788/webhook" --feature reactionDM-Richtlinien
{
"channels": {
"nextcloud-talk": {
"dmPolicy": "pairing",
"allowFrom": ["user-id-1", "user-id-2"]
}
}
}Raumkonfiguration
{
"channels": {
"nextcloud-talk": {
"groupPolicy": "allowlist",
"rooms": {
"abc123token": {
"requireMention": true
},
"def456token": {
"requireMention": false
}
}
}
}
}API-Anmeldedaten fuer Raumerkennung
{
"channels": {
"nextcloud-talk": {
"apiUser": "bot-service-account",
"apiPassword": "service-account-password",
"apiPasswordFile": "/run/secrets/nc-api-password"
}
}
}Webhook-Konfiguration
{
"channels": {
"nextcloud-talk": {
"webhookPort": 8788,
"webhookHost": "0.0.0.0",
"webhookPath": "/webhook",
"webhookPublicUrl": "https://gateway.example.com:8788/webhook"
}
}
}Nachrichtenverarbeitung und Streaming
{
"channels": {
"nextcloud-talk": {
"textChunkLimit": 4000,
"chunkMode": "newline",
"blockStreaming": true,
"blockStreamingCoalesce": true,
"mediaMaxMb": 10
}
}
}Konversationsverlauf
{
"channels": {
"nextcloud-talk": {
"historyLimit": 20,
"dmHistoryLimit": 50
}
}
}Reaktionen-Unterstuetzung
Sicherheit und Webhook-Signierung
Nextcloud Talk Konfigurationsreferenz
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Nextcloud Talk-Kanal aktivieren oder deaktivieren |
| baseUrl | string | "" | Vollstaendige URL Ihres Nextcloud-Servers (z.B. https://nextcloud.example.com) |
| botSecret | string | "" | Gemeinsames Geheimnis zur Webhook-Signaturvalidierung (muss mit dem OCC-Installationsgeheimnis uebereinstimmen) |
| botSecretFile | string | "" | Pfad zu einer Datei, die das gemeinsame Geheimnis enthaelt (Alternative zum Inline-botSecret) |
| apiUser | string | "" | Nextcloud-Benutzername fuer API-Aufrufe (wird fuer die Raumtyp-Erkennung verwendet) |
| apiPassword | string | "" | Passwort fuer das API-Benutzerkonto |
| apiPasswordFile | string | "" | Pfad zu einer Datei, die das API-Passwort enthaelt (Alternative zum Inline-apiPassword) |
| dmPolicy | string | "pairing" | DM-Zugriffsrichtlinie: 'pairing' (Verifizierungscode), 'open' (jeder Benutzer) oder 'disabled' (keine DMs) |
| allowFrom | string[] | [] | Nextcloud-Benutzer-IDs, die dem Bot Direktnachrichten senden duerfen (verwenden Sie ["*"] fuer offenen Zugang) |
| groupPolicy | string | "allowlist" | Raum-Zugriffsrichtlinie: 'allowlist' (nur von Moderatoren aktivierte Raeume) |
| webhookPort | number | 8788 | Port fuer den integrierten Webhook-HTTP-Server |
| webhookHost | string | "0.0.0.0" | Netzwerkschnittstelle, an die der Webhook-Server gebunden wird |
| webhookPath | string | "/webhook" | URL-Pfad fuer den Webhook-Endpunkt |
| webhookPublicUrl | string | "" | Vollstaendige oeffentliche URL fuer den Webhook-Endpunkt (erforderlich hinter einem Reverse Proxy) |
| historyLimit | number | 20 | Maximale Anzahl vorheriger Nachrichten, die als Kontext fuer Raumkonversationen einbezogen werden |
| dmHistoryLimit | number | 50 | Maximale Anzahl vorheriger Nachrichten, die als Kontext fuer DM-Konversationen einbezogen werden |
| textChunkLimit | number | 4000 | Maximale Zeichen pro Nachrichtenblock |
| chunkMode | string | "length" | Textaufteilungsmodus: 'length' (Zeichenlimit) oder 'newline' (Absatzgrenzen) |
| blockStreaming | boolean | false | Auf vollstaendige KI-Antwort warten, bevor gesendet wird (kein Streaming) |
| blockStreamingCoalesce | boolean | false | Streaming-Bloecke zu einer einzelnen Abschlussnachricht zusammenfassen |
| mediaMaxMb | number | 10 | Maximale Dateigroesse in MB fuer Medien-URL-Referenzen |
Nextcloud Talk-Kanal aktivieren oder deaktivieren
Vollstaendige URL Ihres Nextcloud-Servers (z.B. https://nextcloud.example.com)
Gemeinsames Geheimnis zur Webhook-Signaturvalidierung (muss mit dem OCC-Installationsgeheimnis uebereinstimmen)
Pfad zu einer Datei, die das gemeinsame Geheimnis enthaelt (Alternative zum Inline-botSecret)
Nextcloud-Benutzername fuer API-Aufrufe (wird fuer die Raumtyp-Erkennung verwendet)
Passwort fuer das API-Benutzerkonto
Pfad zu einer Datei, die das API-Passwort enthaelt (Alternative zum Inline-apiPassword)
DM-Zugriffsrichtlinie: 'pairing' (Verifizierungscode), 'open' (jeder Benutzer) oder 'disabled' (keine DMs)
Nextcloud-Benutzer-IDs, die dem Bot Direktnachrichten senden duerfen (verwenden Sie ["*"] fuer offenen Zugang)
Raum-Zugriffsrichtlinie: 'allowlist' (nur von Moderatoren aktivierte Raeume)
Port fuer den integrierten Webhook-HTTP-Server
Netzwerkschnittstelle, an die der Webhook-Server gebunden wird
URL-Pfad fuer den Webhook-Endpunkt
Vollstaendige oeffentliche URL fuer den Webhook-Endpunkt (erforderlich hinter einem Reverse Proxy)
Maximale Anzahl vorheriger Nachrichten, die als Kontext fuer Raumkonversationen einbezogen werden
Maximale Anzahl vorheriger Nachrichten, die als Kontext fuer DM-Konversationen einbezogen werden
Maximale Zeichen pro Nachrichtenblock
Textaufteilungsmodus: 'length' (Zeichenlimit) oder 'newline' (Absatzgrenzen)
Auf vollstaendige KI-Antwort warten, bevor gesendet wird (kein Streaming)
Streaming-Bloecke zu einer einzelnen Abschlussnachricht zusammenfassen
Maximale Dateigroesse in MB fuer Medien-URL-Referenzen
Nextcloud Talk Häufig gestellte Fragen
Nextcloud Talk Fehlerbehebung
Die Webhook-URL ist nicht erreichbar, der Bot ist im Raum nicht aktiviert, oder das gemeinsame Geheimnis stimmt nicht ueberein.
Das gemeinsame Geheimnis in der openclaw.json stimmt nicht mit dem bei der Bot-Installation verwendeten ueberein.
Der Bot wurde von keinem Moderator im Zielraum aktiviert, oder requireMention ist aktiviert und der Bot wurde nicht @erwaehnt.
API-Anmeldedaten (apiUser, apiPassword) sind nicht konfiguriert.
Der konfigurierte Webhook-Port ist bereits belegt oder die Host-Bindung ist ungueltig.