Gmail Pub/Sub -> OpenClaw
Mål: Gmail watch -> Pub/Sub push ->gog gmail watch serve -> OpenClaw-webhook.
Förutsättningar
gcloudinstallerat och inloggat (installationsguide).gog(gogcli) installerat och auktoriserat för Gmail-kontot (gogcli.sh).- OpenClaw-hooks aktiverade (se Webhooks).
tailscaleinloggad (tailscale.com). Konfigurationen som stöds använder Tailscale Funnel för den offentliga HTTPS-slutpunkten. Andra tunneltjänster kan fungera, men är DIY/ej stödda och kräver manuell ledning. Just nu är Tailscale vad vi stöder.
deliver + valfri channel/to:
channel + to. Annars channel: "last"
använder den senaste leveransvägen (faller tillbaka till WhatsApp).
För att tvinga fram en billigare modell för Gmail-körningar, sätt model i kartläggningen
(provider/model eller alias). Om du genomdriver agents.defaults.models, inkludera den där.
För att sätta en standardmodell och tänkenivå specifikt för Gmail-hooks, lägg till
hooks.gmail.model / hooks.gmail.thinking i din konfig:
- Per-hook
model/thinkingi mappningen åsidosätter fortfarande dessa standarder. - Reservordning:
hooks.gmail.model→agents.defaults.model.fallbacks→ primär (auth/rate-limit/timeouts). - Om
agents.defaults.modelsär satt måste Gmail-modellen finnas i tillåtelselistan. - Gmail-hook innehåll är insvept med externa säkerhetsgränser för innehåll som standard.
För att inaktivera (farlig), sätt
hooks.gmail.allowUnsafeExternalInnehåll: true.
hooks.mappings eller en JS/TS-transformmodul
under hooks.transformsDir (se Webhooks).
Guide (rekommenderas)
Använd OpenClaw-hjälparen för att koppla ihop allt (installerar beroenden på macOS via brew):- Använder Tailscale Funnel för den publika push-slutpunkten.
- Skriver
hooks.gmail-konfig föropenclaw webhooks gmail run. - Aktiverar Gmail-hook-förinställningen (
hooks.presets: ["gmail"]).
tailscale.mode är aktiverat, sätter OpenClaw automatiskt
hooks.gmail.serve.path till / och behåller den offentliga sökvägen på
hooks. mail.tailscale.path (standard /gmail-pubsub) eftersom Tailscale
tar bort set-path-prefixet innan proxying.
Om du behöver backend för att få den prefixerade sökvägen anger du
hooks.gmail.tailscale.target (eller --tailscale-target) till en fullständig URL som
http://127.0.0.1:8788/gmail-pubsub och matchar hooks.gmail.serve.path.
Vill du ha en anpassad slutpunkt? Använd --push-endpoint <url> eller --tailscale off.
Plattformsnotis: på macOS installerar guiden gcloud, gogcli och tailscale
via Homebrew; på Linux installerar du dem manuellt först.
Gateway auto-start (rekommenderas):
- När
hooks.enabled=trueochhooks.gmail.accountär satt startar Gatewaygog gmail watch servevid uppstart och förnyar watch automatiskt. - Sätt
OPENCLAW_SKIP_GMAIL_WATCHER=1för att välja bort (användbart om du kör daemonen själv). - Kör inte den manuella daemonen samtidigt, annars får du
listen tcp 127.0.0.1:8788: bind: address already in use.
gog gmail watch serve + auto-förnyelse):
Engångsinställning
- Välj GCP-projektet som äger OAuth-klienten som används av
gog.
- Aktivera API:er:
- Skapa ett ämne:
- Tillåt att Gmail-push publicerar:
Starta watch
history_id från utdata (för felsökning).
Kör push-hanteraren
Lokalt exempel (delad token-auth):--tokenskyddar push-slutpunkten (x-gog-tokeneller?token=).--hook-urlpekar på OpenClaw/hooks/gmail(mappad; isolerad körning + sammanfattning till huvud).--include-bodyoch--max-bytesstyr body-snippet som skickas till OpenClaw.
openclaw webhooks gmail run omsluter samma flöde och förnyar watch automatiskt.
Exponera hanteraren (avancerat, ej stödd)
Om du behöver en icke-Tailscale-tunnel, koppla den manuellt och använd den publika URL:en i push- prenumerationen (ej stödd, inga skyddsräcken):Test
Skicka ett meddelande till den bevakade inkorgen:Felsökning
Invalid topicName: projektmatchningsfel (ämnet finns inte i OAuth-klientens projekt).User not authorized: saknarroles/pubsub.publisherpå ämnet.- Tomma meddelanden: Gmail-push tillhandahåller bara
historyId; hämta viagog gmail history.