Gmail Pub/Sub -> OpenClaw
Doel: Gmail-watch -> Pub/Sub-push ->gog gmail watch serve -> OpenClaw-webhook.
Prereqs
gcloudgeïnstalleerd en aangemeld (installatiehandleiding).gog(gogcli) geïnstalleerd en geautoriseerd voor het Gmail-account (gogcli.sh).- OpenClaw-hooks ingeschakeld (zie Webhooks).
tailscaleaangemeld (tailscale.com). De ondersteunde installatie gebruikt Tailscale Funnel voor het publieke HTTPS-eindpunt. Andere tunneldiensten kunnen werken, maar zijn DIY/niet-ondersteund en vereisen handmatige bedrading. Op dit moment ondersteunen we Tailscale.
deliver + optioneel channel/to instelt:
channel + to in. Anders gebruikt channel: "last"
de laatste afleverroute (valt terug op WhatsApp).
Om een goedkoper model af te dwingen voor Gmail-runs, stel model in de mapping in
(provider/model of alias). Als je agents.defaults.models afdwingt, neem dit daar op.
Om een standaardmodel en denkniveau specifiek voor Gmail-hooks in te stellen, voeg
hooks.gmail.model / hooks.gmail.thinking toe aan je config:
- Per-hook
model/thinkingin de mapping overschrijft deze standaardwaarden nog steeds. - Terugvalvolgorde:
hooks.gmail.model→agents.defaults.model.fallbacks→ primair (auth/rate-limit/time-outs). - Als
agents.defaults.modelsis ingesteld, moet het Gmail-model in de toegestane lijst staan. - Inhoud van de Gmail-hook wordt standaard omwikkeld met veiligheidsgrenzen voor externe inhoud.
Om dit uit te schakelen (gevaarlijk), stel
hooks.gmail.allowUnsafeExternalContent: truein.
hooks.mappings toe of een JS/TS-transformatiemodule
onder hooks.transformsDir (zie Webhooks).
Wizard (aanbevolen)
Gebruik de OpenClaw-helper om alles te verbinden (installeert afhankelijkheden op macOS via brew):- Gebruikt Tailscale Funnel voor het publieke push-eindpunt.
- Schrijft
hooks.gmail-config vooropenclaw webhooks gmail run. - Schakelt de Gmail-hook-preset in (
hooks.presets: ["gmail"]).
tailscale.mode is ingeschakeld, stelt OpenClaw automatisch
hooks.gmail.serve.path in op / en houdt het publieke pad op
hooks.gmail.tailscale.path (standaard /gmail-pubsub), omdat Tailscale
de set-path-prefix verwijdert vóór proxying.
Als je wilt dat de backend het geprefixte pad ontvangt, stel
hooks.gmail.tailscale.target (of --tailscale-target) in op een volledige URL zoals
http://127.0.0.1:8788/gmail-pubsub en laat dit overeenkomen met hooks.gmail.serve.path.
Wil je een aangepast eindpunt? Gebruik --push-endpoint <url> of --tailscale off.
Platformnotitie: op macOS installeert de wizard gcloud, gogcli en tailscale
via Homebrew; op Linux installeer je deze eerst handmatig.
Gateway automatisch starten (aanbevolen):
- Wanneer
hooks.enabled=trueenhooks.gmail.accountis ingesteld, start de Gatewaygog gmail watch servebij het opstarten en vernieuwt de watch automatisch. - Stel
OPENCLAW_SKIP_GMAIL_WATCHER=1in om uit te schakelen (handig als je de daemon zelf draait). - Draai de handmatige daemon niet tegelijk, anders krijg je
listen tcp 127.0.0.1:8788: bind: address already in use.
gog gmail watch serve + automatisch vernieuwen):
Eenmalige installatie
- Selecteer het GCP-project dat eigenaar is van de OAuth-client die door
gogwordt gebruikt.
- API’s inschakelen:
- Maak een topic aan:
- Sta toe dat Gmail-push publiceert:
Start de watch
history_id uit de uitvoer op (voor debugging).
De push-handler draaien
Lokaal voorbeeld (gedeelde tokenauthenticatie):--tokenbeschermt het push-eindpunt (x-gog-tokenof?token=).--hook-urlverwijst naar OpenClaw/hooks/gmail(gemapt; geïsoleerde run + samenvatting naar hoofd).--include-bodyen--max-bytesbepalen het body-fragment dat naar OpenClaw wordt gestuurd.
openclaw webhooks gmail run omwikkelt dezelfde flow en vernieuwt de watch automatisch.
De handler blootstellen (geavanceerd, niet ondersteund)
Als je een niet-Tailscale-tunnel nodig hebt, koppel deze handmatig en gebruik de publieke URL in de push- abonnement (niet ondersteund, geen vangrails):Testen
Stuur een bericht naar de gemonitorde inbox:Problemen oplossen
Invalid topicName: projectmismatch (topic staat niet in het OAuth-clientproject).User not authorized: ontbrekenderoles/pubsub.publisherop het topic.- Lege berichten: Gmail-push levert alleen
historyId; haal op viagog gmail history.