Google Chat (Chat API)¶
Status: klar til DM’er + spaces via Google Chat API-webhooks (kun HTTP).
Hurtig opsætning (begynder)¶
- Opret et Google Cloud-projekt, og aktivér Google Chat API. - Gå til: Google Chat API Credentials - Aktivér API’et, hvis det ikke allerede er aktiveret.
- Opret en Service Account:
- Tryk på Create Credentials > Service Account.
- Giv den et valgfrit navn (fx
openclaw-chat). - Lad tilladelser være tomme (tryk Continue). - Lad principals med adgang være tomme (tryk Done). - Opret og download JSON-nøglen: - Klik på den service account, du netop har oprettet, i listen. - Gå til fanen Keys. - Klik Add Key > Create new key. - Vælg JSON, og tryk Create.
- Gem den downloadede JSON-fil på din gateway-vært (fx
~/.openclaw/googlechat-service-account.json). - Opret en Google Chat-app i Google Cloud Console Chat Configuration:
- Udfyld Application info:
- App name: (fx
OpenClaw) - Avatar URL: (fx
https://openclaw.ai/logo.png) - Description: (fx
Personal AI Assistant) - Aktivér Interactive features.
- Under Functionality skal du markere Join spaces and group conversations.
- Under Connection settings skal du vælge HTTP endpoint URL.
- Under Triggers skal du vælge Use a common HTTP endpoint URL for all triggers og sætte den til din gateways offentlige URL efterfulgt af
/googlechat. - Tip: Kør
openclaw statusfor at finde din gateways offentlige URL. - Under Visibility skal du markere Make this Chat app available to specific people and groups in <Your Domain>.
- Indtast din e-mailadresse (fx
user@example.com) i tekstfeltet. - Klik Save nederst.
- App name: (fx
- Aktivér app-status: - Efter du har gemt, skal du genindlæse siden. - Find sektionen App status (typisk nær toppen eller bunden efter gemning). - Skift status til Live - available to users. - Klik Save igen.
- Konfigurér OpenClaw med stien til service account + webhook-audience:
- Miljø:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json- Eller konfiguration:channels.googlechat.serviceAccountFile: "/path/to/service-account.json". - Angiv webhook-audience-type + værdi (matcher din Chat-app-konfiguration).
- Start gatewayen. Google Chat vil POST til din webhook sti.
Tilføj til Google Chat¶
Når gatewayen kører, og din e-mail er tilføjet til synlighedslisten:
- Gå til Google Chat.
- Klik på + (plus)-ikonet ved siden af Direct Messages.
- I søgefeltet (hvor du normalt tilføjer personer) skal du skrive det App name, du konfigurerede i Google Cloud Console. - Bemærk: Botten vil not vises i "Marketplace" browse-listen, fordi det er en privat app. Du skal søge efter det ved navn.
- Vælg din bot fra resultaterne.
- Klik Add eller Chat for at starte en 1:1-samtale.
- Send “Hello” for at udløse assistenten!
Offentlig URL (kun webhook)¶
Google Chat webhooks kræver et offentligt HTTPS-endepunkt. For sikkerhed, **udsæt kun stien /googlechat til internettet. Hold OpenClaw dashboard og andre følsomme endpoints på dit private netværk.
Mulighed A: Tailscale Funnel (anbefalet)¶
Brug Tailscale Serve til det private dashboard og Tragt til den offentlige webhook sti. Dette holder / privat, mens kun udsætter /googlechat.
- Tjek hvilken adresse din gateway er bundet til:
bash
ss -tlnp | grep 18789
Notér IP-adressen (fx 127.0.0.1, 0.0.0.0 eller din Tailscale-IP som 100.x.x.x).
- Eksponér dashboardet kun til tailnettet (port 8443):
```bash # If bound to localhost (127.0.0.1 or 0.0.0.0): tailscale serve --bg --https 8443 http://127.0.0.1:18789
# If bound to Tailscale IP only (e.g., 100.106.161.80): tailscale serve --bg --https 8443 http://100.106.161.80:18789 ```
- Eksponér kun webhook-stien offentligt:
```bash # If bound to localhost (127.0.0.1 or 0.0.0.0): tailscale funnel --bg --set-path /googlechat http://127.0.0.1:18789/googlechat
# If bound to Tailscale IP only (e.g., 100.106.161.80): tailscale funnel --bg --set-path /googlechat http://100.106.161.80:18789/googlechat ```
-
Godkend noden til Funnel-adgang: Hvis du bliver bedt om det, skal du besøge autorisations-URL’en, der vises i outputtet, for at aktivere Funnel for denne node i din tailnet-politik.
-
Verificér konfigurationen:
bash
tailscale serve status
tailscale funnel status
Din offentlige webhook URL vil være:
`https://
Dit private betjeningspanel forbliver kun skræddernet:
https://<node-name>.<tailnet>.ts.net:8443/
Brug den offentlige URL (uden :8443) i Google Chat-app-konfigurationen.
Bemærk: Denne konfiguration fortsætter på tværs af genstarter. For at fjerne det senere, køre
skræddersy tragt nulstillingogskræddersy tjene nulstilling.
Mulighed B: Reverse proxy (Caddy)¶
Hvis du bruger en reverse proxy som Caddy, skal du kun proxy den specifikke sti:
your-domain.com {
reverse_proxy /googlechat* localhost:18789
}
Med denne konfiguration vil enhver anmodning til your-domain.com/ blive ignoreret eller returneret som 404, mens your-domain.com/googlechat sikkert routes til OpenClaw.
Mulighed C: Cloudflare Tunnel¶
Konfigurér din tunnels ingress-regler til kun at route webhook-stien:
- Sti:
/googlechat->http://localhost:18789/googlechat - Standardregel: HTTP 404 (Not Found)
Sådan virker det¶
- Google Chat sender webhook POST'er til gatewayen. Hver anmodning omfatter en
Authorization: Bearer <token>header. - OpenClaw verificerer tokenet mod den konfigurerede
audienceType+audience: -audienceType: "app-url"→ audience er din HTTPS-webhook-URL. -audienceType: "project-number"→ audience er Cloud-projektnummeret. - Beskeder routes efter space:
- DM’er bruger sessionsnøglen
agent:<agentId>:googlechat:dm:<spaceId>. - Spaces bruger sessionsnøglenagent:<agentId>:googlechat:group:<spaceId>. - DM adgang er parring som standard. Ukendt afsendere modtager en parringskode; godkender med:
-
openclaw pairing approve googlechat <code> - Gruppemellemrum kræver som standard @-omtale. Brug
botUserhvis detektering af oplysninger skal bruges i appens brugernavn.
Mål¶
Brug disse identifikatorer til levering og tilladelseslister:
- Direkte beskeder:
users/<userId>ellerusers/<email>(e-mailadresser accepteres). - Spaces:
spaces/<spaceId>.
Konfigurationshøjdepunkter¶
{
channels: {
googlechat: {
enabled: true,
serviceAccountFile: "/path/to/service-account.json",
audienceType: "app-url",
audience: "https://gateway.example.com/googlechat",
webhookPath: "/googlechat",
botUser: "users/1234567890", // optional; helps mention detection
dm: {
policy: "pairing",
allowFrom: ["users/1234567890", "name@example.com"],
},
groupPolicy: "allowlist",
groups: {
"spaces/AAAA": {
allow: true,
requireMention: true,
users: ["users/1234567890"],
systemPrompt: "Short answers only.",
},
},
actions: { reactions: true },
typingIndicator: "message",
mediaMaxMb: 20,
},
},
}
Noter:
- Service account-legitimationsoplysninger kan også angives inline med
serviceAccount(JSON-streng). - Standard webhook-sti er
/googlechat, hviswebhookPathikke er angivet. - Reaktioner er tilgængelige via værktøjet
reactionsogchannels action, nåractions.reactionser aktiveret. typingIndicatorunderstøtternone,message(standard) ogreaction(reaktion kræver bruger-OAuth).- Vedhæftninger downloades via Chat API’et og gemmes i medie-pipelinen (størrelse begrænset af
mediaMaxMb).
Fejlfinding¶
405 Method Not Allowed¶
Hvis Google Cloud Logs Explorer viser fejl som:
status code: 405, reason phrase: HTTP error response: HTTP/1.1 405 Method Not Allowed
Det betyder, at webhook handleren ikke er registreret. Almindelige årsager:
- Kanal ikke konfigureret: Afsnittet
channels.googlechatmangler i din konfiguration. Verificér med:
bash
openclaw config get channels.googlechat
Hvis den returnerer “Config path not found”, skal du tilføje konfigurationen (se Konfigurationshøjdepunkter).
- Plugin ikke aktiveret: Tjek plugin-status:
bash
openclaw plugins list | grep googlechat
Hvis den viser “disabled”, skal du tilføje plugins.entries.googlechat.enabled: true til din konfiguration.
- Gateway ikke genstartet: Efter tilføjelse af konfiguration skal du genstarte gatewayen:
bash
openclaw gateway restart
Verificér, at kanalen kører:
openclaw channels status
# Should show: Google Chat default: enabled, configured, ...
Andre problemer¶
- Tjek
openclaw channels status --probefor auth-fejl eller manglende audience-konfiguration. - Hvis der ikke ankommer beskeder, skal du bekræfte Chat-appens webhook-URL + event-abonnementer.
- Hvis mention-gating blokerer svar, skal du sætte
botUsertil appens user resource name og verificererequireMention. - Brug
openclaw logs --follow, mens du sender en testbesked, for at se om anmodninger når gatewayen.
Relaterede dokumenter: