OpenClaw

OpenClaw Nextcloud Talk Kanal

Unternehmen
Mittel

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.

Kurzinfo
SchwierigkeitsgradMittel
KategorieUnternehmen
Unterstützte Funktionen4 / 6

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

1

Nextcloud Talk Plugin installieren

Fuehren Sie 'openclaw plugins install @openclaw/nextcloud-talk' aus, um Nextcloud Talk-Unterstuetzung zu Ihrem Gateway hinzuzufuegen.

2

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).

3

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

config.json
{
  "channels": {
    "nextcloud-talk": {
      "enabled": true,
      "baseUrl": "https://nextcloud.example.com",
      "botSecret": "your-shared-secret-min-40-chars",
      "dmPolicy": "pairing"
    }
  }
}

Nextcloud Talk Detaillierte Dokumentation

Architekturuebersicht

OpenClaw integriert sich ueber die Talk Bot API (verfuegbar seit Nextcloud 27.1) mit Nextcloud Talk. Die Architektur ist webhook-basiert: 1. Der Bot wird auf dem Nextcloud-Server mithilfe des OCC-Kommandozeilentools mit einem gemeinsamen Geheimnis und einer Webhook-URL registriert. 2. Wenn eine Nachricht in einem Raum gepostet wird, in dem der Bot aktiviert ist, sendet Nextcloud Talk einen HTTP POST an die konfigurierte Webhook-URL mit dem Nachrichteninhalt, signiert mit dem gemeinsamen Geheimnis. 3. Das Gateway verifiziert die Webhook-Signatur, verarbeitet die Nachricht durch Ihren KI-Agenten und sendet die Antwort ueber die Talk REST API zurueck an die Konversation. Dieses Design erfordert, dass das Gateway einen Webhook-Endpunkt bereitstellt, der vom Nextcloud-Server aus erreichbar ist. Der Webhook-Listener laeuft standardmaessig auf Port 8788 und kann ueber die Konfigurationsoptionen webhookPort und webhookHost angepasst werden.
Die Webhook-URL muss vom Nextcloud-Server aus erreichbar sein. Fuer die lokale Entwicklung verwenden Sie einen Tunneldienst wie ngrok.
Jede Bot-Installation erzeugt einen eindeutigen URL-Hash (bot-<hash>), der als Akteur-ID fuer Nachrichten verwendet wird.

Bot-Registrierung ueber OCC

Nextcloud Talk Bots werden auf dem Server mithilfe von OCC-Befehlen (Nextcloud Command Console) registriert. Dies ist ein serverseitiger Vorgang, der SSH- oder Konsolenzugang erfordert. Zum Installieren des Bots: ./occ talk:bot:install "OpenClaw" "<secret>" "<webhook-url>" --feature reaction Parameter: • name (erforderlich): Anzeigename, der als Nachrichtenautor angezeigt wird (1-64 Zeichen) • secret (erforderlich): Gemeinsames Geheimnis zur Webhook-Signaturvalidierung (40-128 Zeichen) • url (erforderlich): Webhook-Endpunkt-URL Ihres Gateways • --feature: Bot-Faehigkeiten -- verwenden Sie 'reaction' zur Aktivierung von Emoji-Reaktionen • --no-setup: Verhindert, dass Moderatoren den Bot pro Raum umschalten koennen Weitere nuetzliche OCC-Befehle: • talk:bot:list -- Alle installierten Bots auflisten • talk:bot:remove <bot-id> -- Einen Bot aus bestimmten Konversationen entfernen • talk:bot:setup <bot-id> <token> -- Einen Bot in einer Konversation aktivieren • talk:bot:state <bot-id> <state> -- Bot-Status aendern (0=deaktiviert, 1=aktiviert, 2=no-setup) • talk:bot:uninstall <id> -- Einen Bot vollstaendig vom Server entfernen
Terminal
./occ talk:bot:install "OpenClaw" "a]72@Bz&V!LKMO*xhQib7p^E%yzGMG(8a7Bp*x6o" "https://gateway.example.com:8788/webhook" --feature reaction
Erzeugen Sie ein starkes gemeinsames Geheimnis mit: openssl rand -base64 48
Das Flag --feature reaction wird empfohlen, damit der Bot mit Emoji auf Nachrichten reagieren kann.

DM-Richtlinien

Direktnachrichten-Richtlinien (DM) steuern, wie der Bot private Einzelgespraeche behandelt. **pairing (Standard)** -- Unbekannte Absender erhalten einen Pairing-Code, der verifiziert werden muss, bevor der Bot antwortet. Dies ist der sicherste Modus und erfordert eine explizite Benutzerautorisierung. **open** -- Jeder Benutzer, der dem Bot schreibt, erhaelt eine Antwort. Erfordert die Einstellung allowFrom auf ["*"]. **disabled** -- Der Bot antwortet ueberhaupt nicht auf Direktnachrichten. Hinweis: Nextcloud Talk Bots koennen keine Direktnachrichten initiieren -- der Benutzer muss den Bot zuerst anschreiben. Das Feld allowFrom gleicht Nextcloud-Benutzer-IDs ab (nicht Anzeigenamen).
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "dmPolicy": "pairing",
      "allowFrom": ["user-id-1", "user-id-2"]
    }
  }
}
Bots koennen in Nextcloud Talk keine Direktnachrichten initiieren. Benutzer muessen den Bot zuerst kontaktieren, um eine Konversation zu starten.

Raumkonfiguration

Raum-Richtlinien (Gruppenchat) steuern, an welchen Konversationen der Bot teilnimmt und wie er ausgeloest wird. **allowlist (Standard)** -- Der Bot antwortet nur in Raeumen, in denen er von einem Moderator ueber die Raumeinstellungen explizit aktiviert wurde. Die Konfiguration pro Raum kann ueber das rooms-Objekt angepasst werden. Jeder Raum wird durch sein Konversations-Token identifiziert und kann unabhaengige Einstellungen haben: • requireMention -- Wenn aktiviert, antwortet der Bot nur bei @Erwaehnung (Standardverhalten in Raeumen) • Raeume, die nicht in der Konfiguration aufgefuehrt sind, verwenden die Standard-Raumeinstellungen Um das Token eines Raums zu finden, schauen Sie in die URL beim Anzeigen des Raums in Nextcloud Talk (z.B. https://nextcloud.example.com/call/<token>).
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "groupPolicy": "allowlist",
      "rooms": {
        "abc123token": {
          "requireMention": true
        },
        "def456token": {
          "requireMention": false
        }
      }
    }
  }
}
Ein Raum-Moderator muss den Bot in den Raumeinstellungen aktivieren, bevor er Nachrichten empfangen kann.
Verwenden Sie requireMention: true fuer stark frequentierte Raeume, um zu vermeiden, dass der Bot auf jede Nachricht antwortet.

API-Anmeldedaten fuer Raumerkennung

Standardmaessig unterscheidet der Webhook-Payload von Nextcloud Talk nicht zwischen Direktnachrichten und Raumnachrichten. Um eine genaue Raumtyp-Erkennung zu ermoeglichen, koennen Sie API-Anmeldedaten bereitstellen. Wenn apiUser und apiPassword konfiguriert sind, fuehrt das Gateway einen zusaetzlichen API-Aufruf durch, um festzustellen, ob eine eingehende Nachricht aus einer Direktnachricht oder einer Raumkonversation stammt. Dadurch kann der Bot verschiedene Richtlinien (dmPolicy vs. groupPolicy) korrekt anwenden. Ohne API-Anmeldedaten behandelt der Bot alle Nachrichten gemaess einer einheitlichen Richtlinie, was fuer einfache Bereitstellungen ausreichend sein kann.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "apiUser": "bot-service-account",
      "apiPassword": "service-account-password",
      "apiPasswordFile": "/run/secrets/nc-api-password"
    }
  }
}
Erstellen Sie ein dediziertes Nextcloud-Benutzerkonto fuer die API-Anmeldedaten, anstatt ein Administratorkonto zu verwenden.
Verwenden Sie apiPasswordFile, um das Passwort aus einer Datei zu laden (z.B. Docker Secret), anstatt es in der Konfiguration zu speichern.
Ohne API-Anmeldedaten kann der Bot nicht zwischen Direktnachrichten und Raumnachrichten unterscheiden. Dies kann dazu fuehren, dass DM-spezifische Richtlinien nicht korrekt funktionieren.

Webhook-Konfiguration

Das Gateway startet einen integrierten HTTP-Server zum Empfang von Webhook-Ereignissen von Nextcloud Talk. Die Webhook-Listener-Konfiguration steuert, wie und wo der Server lauscht. **webhookPort** (Standard: 8788) -- Der Port fuer den Webhook-HTTP-Server. **webhookHost** (Standard: 0.0.0.0) -- Die Netzwerkschnittstelle, an die gebunden wird. Verwenden Sie 0.0.0.0, um auf allen Schnittstellen zu lauschen, oder 127.0.0.1 nur fuer localhost. **webhookPath** -- Benutzerdefinierter URL-Pfad fuer den Webhook-Endpunkt. **webhookPublicUrl** -- Die vollstaendige oeffentliche URL, die Nextcloud verwenden soll, um den Webhook zu erreichen. Erforderlich bei Betrieb hinter einem Reverse Proxy oder NAT. Die bei der Bot-Installation (OCC-Befehl) angegebene Webhook-URL muss mit der oeffentlichen URL uebereinstimmen, die zu diesem Listener aufloest.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "webhookPort": 8788,
      "webhookHost": "0.0.0.0",
      "webhookPath": "/webhook",
      "webhookPublicUrl": "https://gateway.example.com:8788/webhook"
    }
  }
}
Wenn Sie hinter einem Reverse Proxy arbeiten, setzen Sie webhookPublicUrl auf die extern erreichbare URL.
Stellen Sie sicher, dass Ihre Firewall eingehende Verbindungen auf dem Webhook-Port vom Nextcloud-Server zulasst.

Nachrichtenverarbeitung und Streaming

OpenClaw bietet detaillierte Kontrolle darueber, wie Nachrichten aufgeteilt und an Nextcloud Talk uebermittelt werden. **textChunkLimit** -- Maximale Zeichenanzahl pro Nachrichtenblock. Nextcloud Talk unterstuetzt lange Nachrichten, aber die Aufteilung kann die Lesbarkeit laengerer KI-Antworten verbessern. **chunkMode** -- Steuert die Textaufteilung: 'length' teilt am Zeichenlimit, 'newline' teilt an Absatzgrenzen fuer natuerlichere Umbrueche. **blockStreaming** -- Wenn aktiviert, wartet der Bot auf die vollstaendige KI-Antwort, bevor er sendet, anstatt Teilantworten zu streamen. **blockStreamingCoalesce** -- Bei aktiviertem Block-Streaming wird die endgueltige Antwort in einer einzigen Nachricht zusammengefasst, anstatt in mehreren Bloecken. **mediaMaxMb** -- Maximale Dateigroesse (in MB) fuer Medienanhaenge. Beachten Sie, dass Nextcloud Talk Medien als URLs uebertraegt und nicht als direkte Datei-Uploads.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "textChunkLimit": 4000,
      "chunkMode": "newline",
      "blockStreaming": true,
      "blockStreamingCoalesce": true,
      "mediaMaxMb": 10
    }
  }
}
Verwenden Sie blockStreaming: true fuer sauberere Antworten in Raeumen, in denen mehrere Benutzer aktiv sind.
Medien werden in Nextcloud Talk als URLs geteilt -- der Bot kann keine Dateien direkt hochladen.

Konversationsverlauf

Steuern Sie, wie viele vorherige Nachrichten als Kontext einbezogen werden, wenn der KI-Agent eine neue Nachricht verarbeitet. **historyLimit** -- Maximale Anzahl vorheriger Nachrichten, die fuer Raumkonversationen einbezogen werden. **dmHistoryLimit** -- Maximale Anzahl vorheriger Nachrichten, die fuer Direktnachricht-Konversationen einbezogen werden. Dies kann unabhaengig vom Raum-Verlaufslimit festgelegt werden. Pro-DM-Ueberschreibungen werden ebenfalls unterstuetzt, sodass Sie verschiedene Verlaufslimits fuer bestimmte Benutzer konfigurieren koennen. Ein hoeheres Verlaufslimit bietet mehr Kontext fuer die KI, erhoht aber den Token-Verbrauch und die Verarbeitungszeit.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "historyLimit": 20,
      "dmHistoryLimit": 50
    }
  }
}

Reaktionen-Unterstuetzung

Nextcloud Talk unterstuetzt Emoji-Reaktionen auf Nachrichten, und der OpenClaw-Bot kann Reaktionen sowohl lesen als auch hinzufuegen. Um die Reaktionen-Unterstuetzung zu aktivieren, muss der Bot bei der OCC-Installation mit dem Flag --feature reaction registriert werden. Einmal aktiviert, kann der KI-Agent auf Benutzernachrichten mit Emoji reagieren, um Bestaetigung oder Feedback zu geben. Reaktionen sind eine leichtgewichtige Moeglichkeit fuer den Bot, zu interagieren, ohne vollstaendige Textnachrichten zu senden -- zum Beispiel mit einem Haekchen-Emoji auf eine abgeschlossene Aufgabe zu reagieren. Die Nextcloud Talk Reaction API (verfuegbar seit der bots-v1-Faehigkeit) uebernimmt die zugrunde liegende Mechanik zum Hinzufuegen und Entfernen von Reaktionen.
Das Flag --feature reaction muss bei der Bot-Installation gesetzt werden, damit Reaktionen funktionieren.
Reaktionen koennen als unaufdringlicher Bestaetigungsmechanismus in stark frequentierten Raeumen verwendet werden.

Sicherheit und Webhook-Signierung

Alle Webhook-Payloads von Nextcloud Talk werden mit dem gemeinsamen Geheimnis signiert, das bei der Bot-Installation konfiguriert wurde. Das Gateway verifiziert jede Signatur, um Authentizitaet und Integritaet sicherzustellen. Der Signierungsmechanismus verwendet HMAC-SHA256: 1. Nextcloud berechnet einen HMAC-SHA256-Hash des Webhook-Payload-Bodys mit dem gemeinsamen Geheimnis. 2. Die Signatur wird in den HTTP-Headern der Webhook-Anfrage mitgesendet. 3. Das Gateway berechnet den Hash unabhaengig und vergleicht ihn mit der empfangenen Signatur. 4. Wenn die Signaturen nicht uebereinstimmen, wird die Anfrage abgelehnt. Dies stellt sicher, dass nur legitime Anfragen von Ihrem Nextcloud-Server verarbeitet werden. Halten Sie das gemeinsame Geheimnis vertraulich und rotieren Sie es regelmaessig, indem Sie den Bot mit einem neuen Geheimnis neu installieren.
Verwenden Sie ein kryptografisch starkes Geheimnis: openssl rand -base64 48 erzeugt einen geeigneten Wert.
Speichern Sie das Geheimnis ueber botSecretFile, um es nicht in die Versionskontrolle einzuchecken.
Geben Sie das gemeinsame Geheimnis niemals in oeffentlichen Repositories oder Logs preis. Verwenden Sie Umgebungsvariablen oder Secret-Dateien fuer Produktionsbereitstellungen.

Nextcloud Talk Konfigurationsreferenz

enabled
Type: booleanDefault: true

Nextcloud Talk-Kanal aktivieren oder deaktivieren

baseUrl
Type: stringDefault: ""

Vollstaendige URL Ihres Nextcloud-Servers (z.B. https://nextcloud.example.com)

botSecret
Type: stringDefault: ""

Gemeinsames Geheimnis zur Webhook-Signaturvalidierung (muss mit dem OCC-Installationsgeheimnis uebereinstimmen)

botSecretFile
Type: stringDefault: ""

Pfad zu einer Datei, die das gemeinsame Geheimnis enthaelt (Alternative zum Inline-botSecret)

apiUser
Type: stringDefault: ""

Nextcloud-Benutzername fuer API-Aufrufe (wird fuer die Raumtyp-Erkennung verwendet)

apiPassword
Type: stringDefault: ""

Passwort fuer das API-Benutzerkonto

apiPasswordFile
Type: stringDefault: ""

Pfad zu einer Datei, die das API-Passwort enthaelt (Alternative zum Inline-apiPassword)

dmPolicy
Type: stringDefault: "pairing"

DM-Zugriffsrichtlinie: 'pairing' (Verifizierungscode), 'open' (jeder Benutzer) oder 'disabled' (keine DMs)

allowFrom
Type: string[]Default: []

Nextcloud-Benutzer-IDs, die dem Bot Direktnachrichten senden duerfen (verwenden Sie ["*"] fuer offenen Zugang)

groupPolicy
Type: stringDefault: "allowlist"

Raum-Zugriffsrichtlinie: 'allowlist' (nur von Moderatoren aktivierte Raeume)

webhookPort
Type: numberDefault: 8788

Port fuer den integrierten Webhook-HTTP-Server

webhookHost
Type: stringDefault: "0.0.0.0"

Netzwerkschnittstelle, an die der Webhook-Server gebunden wird

webhookPath
Type: stringDefault: "/webhook"

URL-Pfad fuer den Webhook-Endpunkt

webhookPublicUrl
Type: stringDefault: ""

Vollstaendige oeffentliche URL fuer den Webhook-Endpunkt (erforderlich hinter einem Reverse Proxy)

historyLimit
Type: numberDefault: 20

Maximale Anzahl vorheriger Nachrichten, die als Kontext fuer Raumkonversationen einbezogen werden

dmHistoryLimit
Type: numberDefault: 50

Maximale Anzahl vorheriger Nachrichten, die als Kontext fuer DM-Konversationen einbezogen werden

textChunkLimit
Type: numberDefault: 4000

Maximale Zeichen pro Nachrichtenblock

chunkMode
Type: stringDefault: "length"

Textaufteilungsmodus: 'length' (Zeichenlimit) oder 'newline' (Absatzgrenzen)

blockStreaming
Type: booleanDefault: false

Auf vollstaendige KI-Antwort warten, bevor gesendet wird (kein Streaming)

blockStreamingCoalesce
Type: booleanDefault: false

Streaming-Bloecke zu einer einzelnen Abschlussnachricht zusammenfassen

mediaMaxMb
Type: numberDefault: 10

Maximale Dateigroesse in MB fuer Medien-URL-Referenzen

Nextcloud Talk Häufig gestellte Fragen

Nextcloud Talk Fehlerbehebung

Bot antwortet nicht auf Nachrichten

Die Webhook-URL ist nicht erreichbar, der Bot ist im Raum nicht aktiviert, oder das gemeinsame Geheimnis stimmt nicht ueberein.

Ueberpruefen Sie, ob die Webhook-URL vom Nextcloud-Server aus erreichbar ist (testen Sie mit curl). Pruefen Sie, ob der Bot in den Raumeinstellungen aktiviert ist. Stellen Sie sicher, dass das botSecret in der openclaw.json mit dem beim OCC-Installationsbefehl verwendeten Geheimnis uebereinstimmt.
Webhook-Signaturverifizierung schlaegt fehl

Das gemeinsame Geheimnis in der openclaw.json stimmt nicht mit dem bei der Bot-Installation verwendeten ueberein.

Ueberpruefen Sie, ob beide Geheimnisse exakt uebereinstimmen. Im Zweifelsfall deinstallieren und reinstallieren Sie den Bot mit einem bekannten Geheimnis. Pruefen Sie die Gateway-Logs auf Signatur-Nichtueberinstimmungsfehler.
Bot antwortet in Direktnachrichten, aber nicht in Raeumen

Der Bot wurde von keinem Moderator im Zielraum aktiviert, oder requireMention ist aktiviert und der Bot wurde nicht @erwaehnt.

Bitten Sie einen Raum-Moderator, den Bot in den Raumeinstellungen zu aktivieren. Wenn requireMention konfiguriert ist, stellen Sie sicher, dass Benutzer den Bot-Namen per @Erwaehnung ansprechen. Ueberpruefen Sie die rooms-Konfiguration in der openclaw.json.
Direktnachrichten und Raumnachrichten koennen nicht unterschieden werden

API-Anmeldedaten (apiUser, apiPassword) sind nicht konfiguriert.

Fuegen Sie apiUser und apiPassword zu Ihrer nextcloud-talk-Kanalkonfiguration hinzu. Erstellen Sie ein dediziertes Nextcloud-Dienstkonto fuer diesen Zweck. Das Gateway verwendet diese Anmeldedaten, um die Talk API zur Erkennung des Konversationstyps abzufragen.
Gateway kann den Webhook-Listener nicht starten

Der konfigurierte Webhook-Port ist bereits belegt oder die Host-Bindung ist ungueltig.

Aendern Sie webhookPort auf einen verfuegbaren Port (Standard: 8788). Wenn Sie an eine bestimmte Schnittstelle binden, ueberpruefen Sie, ob die webhookHost-IP-Adresse korrekt ist. Pruefen Sie auf Portkonflikte mit 'lsof -i :8788' oder 'netstat -tlnp'.