Google Chat (Chat API)
Status: bereit für DMs + Spaces über Google Chat API-Webhooks (nur HTTP).Schnelle Einrichtung (für Einsteiger)
- Erstellen Sie ein Google Cloud-Projekt und aktivieren Sie die Google Chat API.
- Gehen Sie zu: Google Chat API Credentials
- Aktivieren Sie die API, falls sie noch nicht aktiviert ist.
- Erstellen Sie ein Service Account:
- Klicken Sie auf Create Credentials > Service Account.
- Geben Sie einen beliebigen Namen an (z. B.
openclaw-chat). - Lassen Sie die Berechtigungen leer (klicken Sie auf Continue).
- Lassen Sie die Principals mit Zugriff leer (klicken Sie auf Done).
- Erstellen und laden Sie den JSON Key herunter:
- Klicken Sie in der Liste der Service Accounts auf den gerade erstellten Eintrag.
- Wechseln Sie zum Tab Keys.
- Klicken Sie auf Add Key > Create new key.
- Wählen Sie JSON aus und klicken Sie auf Create.
- Speichern Sie die heruntergeladene JSON-Datei auf Ihrem Gateway-Host (z. B.
~/.openclaw/googlechat-service-account.json). - Erstellen Sie eine Google Chat-App in der Google Cloud Console Chat Configuration:
- Füllen Sie die Application info aus:
- App name: (z. B.
OpenClaw) - Avatar URL: (z. B.
https://openclaw.ai/logo.png) - Description: (z. B.
Personal AI Assistant)
- App name: (z. B.
- Aktivieren Sie Interactive features.
- Aktivieren Sie unter Functionality die Option Join spaces and group conversations.
- Wählen Sie unter Connection settings HTTP endpoint URL aus.
- Wählen Sie unter Triggers Use a common HTTP endpoint URL for all triggers aus und setzen Sie diese auf die öffentliche URL Ihres Gateways gefolgt von
/googlechat.- Tipp: Führen Sie
openclaw statusaus, um die öffentliche URL Ihres Gateways zu finden.
- Tipp: Führen Sie
- Aktivieren Sie unter Visibility die Option Make this Chat app available to specific people and groups in <Your Domain>.
- Geben Sie Ihre E-Mail-Adresse (z. B.
user@example.com) in das Textfeld ein. - Klicken Sie unten auf Save.
- Füllen Sie die Application info aus:
- Aktivieren Sie den App-Status:
- Aktualisieren Sie nach dem Speichern die Seite.
- Suchen Sie nach dem Abschnitt App status (normalerweise nach dem Speichern oben oder unten auf der Seite).
- Ändern Sie den Status auf Live - available to users.
- Klicken Sie erneut auf Save.
- Konfigurieren Sie OpenClaw mit dem Pfad zum Service Account + der Webhook Audience:
- Env:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Oder config:
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Env:
- Legen Sie Typ + Wert der Webhook Audience fest (entspricht Ihrer Chat-App-Konfiguration).
- Starten Sie das Gateway. Google Chat sendet dann POST-Anfragen an Ihren Webhook-Pfad.
Zu Google Chat hinzufügen
Sobald das Gateway läuft und Ihre E-Mail-Adresse zur Sichtbarkeitsliste hinzugefügt wurde:- Gehen Sie zu Google Chat.
- Klicken Sie auf das +-Symbol neben Direct Messages.
- Geben Sie in der Suchleiste (wo Sie normalerweise Personen hinzufügen) den App name ein, den Sie in der Google Cloud Console konfiguriert haben.
- Hinweis: Der Bot erscheint nicht in der „Marketplace“-Übersicht, da es sich um eine private App handelt. Sie müssen ihn nach Namen suchen.
- Wählen Sie Ihren Bot aus den Ergebnissen aus.
- Klicken Sie auf Add oder Chat, um eine 1:1-Unterhaltung zu starten.
- Senden Sie „Hello“, um den Assistenten auszulösen!
Öffentliche URL (nur Webhook)
Google Chat-Webhooks benötigen einen öffentlichen HTTPS-Endpunkt. Aus Sicherheitsgründen sollten Sie nur den Pfad/googlechat für das Internet freigeben. Halten Sie das OpenClaw-Dashboard und andere sensible Endpunkte in Ihrem privaten Netzwerk.
Option A: Tailscale Funnel (empfohlen)
Verwenden Sie Tailscale Serve für das private Dashboard und Funnel für den öffentlichen Webhook-Pfad. So bleibt/ privat, während nur /googlechat freigegeben wird.
-
Prüfen Sie, an welche Adresse Ihr Gateway gebunden ist:
Notieren Sie sich die IP-Adresse (z. B.
127.0.0.1,0.0.0.0oder Ihre Tailscale-IP wie100.x.x.x). -
Dashboard nur im Tailnet freigeben (Port 8443):
-
Nur den Webhook-Pfad öffentlich freigeben:
- Autorisieren Sie den Node für den Funnel-Zugriff: Wenn Sie dazu aufgefordert werden, öffnen Sie die in der Ausgabe angezeigte Autorisierungs-URL, um Funnel für diesen Node in Ihrer Tailnet-Richtlinie zu aktivieren.
-
Überprüfen Sie die Konfiguration:
https://<node-name>.<tailnet>.ts.net/googlechat
Ihr privates Dashboard bleibt auf das Tailnet beschränkt:
https://<node-name>.<tailnet>.ts.net:8443/
Verwenden Sie die öffentliche URL (ohne :8443) in der Google Chat-App-Konfiguration.
Hinweis: Diese Konfiguration bleibt über Neustarts hinweg bestehen. Um sie später zu entfernen, führen Sietailscale funnel resetundtailscale serve resetaus.
Option B: Reverse Proxy (Caddy)
Wenn Sie einen Reverse Proxy wie Caddy verwenden, leiten Sie nur den spezifischen Pfad weiter:your-domain.com/ ignoriert oder mit 404 beantwortet, während your-domain.com/googlechat sicher an OpenClaw weitergeleitet wird.
Option C: Cloudflare Tunnel
Konfigurieren Sie die Ingress-Regeln Ihres Tunnels so, dass nur der Webhook-Pfad weitergeleitet wird:- Path:
/googlechat->http://localhost:18789/googlechat - Default Rule: HTTP 404 (Not Found)
So funktioniert es
- Google Chat sendet Webhook-POSTs an das Gateway. Jede Anfrage enthält einen Header
Authorization: Bearer <token>.- OpenClaw überprüft die Bearer-Authentifizierung, bevor vollständige Webhook-Bodys gelesen oder geparst werden, wenn der Header vorhanden ist.
- Google Workspace Add-on-Anfragen, die
authorizationEventObject.systemIdTokenim Body enthalten, werden über ein strengeres Body-Budget für die Vorabauthentifizierung unterstützt.
- OpenClaw überprüft das Token anhand des konfigurierten
audienceType+audience:audienceType: "app-url"→ Audience ist Ihre HTTPS-Webhook-URL.audienceType: "project-number"→ Audience ist die Nummer des Cloud-Projekts.
- Nachrichten werden nach Space weitergeleitet:
- DMs verwenden den Sitzungsschlüssel
agent:<agentId>:googlechat:direct:<spaceId>. - Spaces verwenden den Sitzungsschlüssel
agent:<agentId>:googlechat:group:<spaceId>.
- DMs verwenden den Sitzungsschlüssel
- DM-Zugriff verwendet standardmäßig Pairing. Unbekannte Absender erhalten einen Pairing-Code; freigeben mit:
openclaw pairing approve googlechat <code>
- Gruppen-Spaces erfordern standardmäßig eine @-Erwähnung. Verwenden Sie
botUser, wenn die Erwähnungserkennung den Benutzernamen der App benötigt.
Ziele
Verwenden Sie diese Bezeichner für Zustellung und Allowlists:- Direct Messages:
users/<userId>(empfohlen). - Rohe E-Mail
name@example.comist veränderlich und wird nur für direkten Allowlist-Abgleich verwendet, wennchannels.googlechat.dangerouslyAllowNameMatching: true. - Veraltet:
users/<email>wird als Benutzer-ID behandelt, nicht als E-Mail-Allowlist. - Spaces:
spaces/<spaceId>.
Wichtige Konfigurationspunkte
- Service Account-Anmeldedaten können auch inline mit
serviceAccount(JSON-String) übergeben werden. serviceAccountRefwird ebenfalls unterstützt (env/file SecretRef), einschließlich kontoabhängiger Refs unterchannels.googlechat.accounts.<id>.serviceAccountRef.- Der Standard-Webhook-Pfad ist
/googlechat, wennwebhookPathnicht gesetzt ist. dangerouslyAllowNameMatchingaktiviert den Abgleich veränderlicher E-Mail-Principalnamen für Allowlists erneut (Kompatibilitätsmodus für Notfälle).- Reaktionen sind über das Tool
reactionsundchannels actionverfügbar, wennactions.reactionsaktiviert ist. - Nachrichtenaktionen stellen
sendfür Text undupload-filefür explizites Senden von Anhängen bereit.upload-fileakzeptiertmedia/filePath/pathsowie optionalmessage,filenameund Thread-Zielangaben. typingIndicatorunterstütztnone,message(Standard) undreaction(reactionerfordert Benutzer-OAuth).- Anhänge werden über die Chat API heruntergeladen und in der Medienpipeline gespeichert (Größenlimit durch
mediaMaxMb).
Fehlerbehebung
405 Method Not Allowed
Wenn Google Cloud Logs Explorer Fehler wie diese anzeigt:-
Kanal nicht konfiguriert: Der Abschnitt
channels.googlechatfehlt in Ihrer Konfiguration. Prüfen Sie das mit:Wenn „Config path not found“ zurückgegeben wird, fügen Sie die Konfiguration hinzu (siehe Wichtige Konfigurationspunkte). -
Plugin nicht aktiviert: Prüfen Sie den Plugin-Status:
Wenn „disabled“ angezeigt wird, fügen Sie
plugins.entries.googlechat.enabled: truezu Ihrer Konfiguration hinzu. -
Gateway nicht neu gestartet: Starten Sie das Gateway nach dem Hinzufügen der Konfiguration neu:
Weitere Probleme
- Prüfen Sie
openclaw channels status --probeauf Auth-Fehler oder fehlende Audience-Konfiguration. - Wenn keine Nachrichten ankommen, prüfen Sie die Webhook-URL + Ereignisabonnements der Chat-App.
- Wenn Mention-Gating Antworten blockiert, setzen Sie
botUserauf den Benutzernamen der App-Ressource und prüfen SierequireMention. - Verwenden Sie
openclaw logs --follow, während Sie eine Testnachricht senden, um zu sehen, ob Anfragen das Gateway erreichen.
Verwandt
- Channels Overview — alle unterstützten Kanäle
- Pairing — DM-Authentifizierung und Pairing-Ablauf
- Groups — Verhalten in Gruppenchats und Mention-Gating
- Channel Routing — Sitzungsrouting für Nachrichten
- Security — Zugriffsmodell und Härtung