Gmail Pub/Sub -> OpenClaw
Amaç: Gmail watch -> Pub/Sub push ->gog gmail watch serve -> OpenClaw webhook.
Önkoşullar
gcloudkurulu ve oturum açılmış (kurulum kılavuzu).gog(gogcli) kurulu ve Gmail hesabı için yetkilendirilmiş (gogcli.sh).- OpenClaw hooks etkin (bkz. Webhooks).
tailscaleile oturum açılmış (tailscale.com). Desteklenen kurulum, herkese açık HTTPS uç noktası için Tailscale Funnel kullanır. Diğer tünel servisleri çalışabilir, ancak DIY/desteklenmez ve manuel kablolama gerektirir. Şu anda desteklediğimiz çözüm Tailscale’dir.
deliver + isteğe bağlı channel/to ayarlayan bir eşleme ile ön ayarı geçersiz kılın:
channel + to ayarlayın. Aksi halde channel: "last"
son teslim rotasını kullanır (WhatsApp’a geri düşer).
Gmail çalıştırmaları için daha ucuz bir modeli zorlamak üzere eşlemede model ayarlayın
(provider/model veya takma ad). agents.defaults.models dayatıyorsanız, bunu da buraya ekleyin.
Gmail hook’ları için varsayılan bir model ve düşünme seviyesi ayarlamak üzere yapılandırmanıza
hooks.gmail.model / hooks.gmail.thinking ekleyin:
- Eşlemedeki hook başına
model/thinkingyine de bu varsayılanları geçersiz kılar. - Geri dönüş sırası:
hooks.gmail.model→agents.defaults.model.fallbacks→ birincil (kimlik doğrulama/hız sınırı/zaman aşımı). agents.defaults.modelsayarlıysa, Gmail modeli izin listesinde olmalıdır.- Gmail hook içeriği varsayılan olarak harici içerik güvenlik sınırlarıyla sarılır.
Devre dışı bırakmak için (tehlikeli),
hooks.gmail.allowUnsafeExternalContent: trueayarlayın.
hooks.mappings ekleyin veya
hooks.transformsDir altında bir JS/TS dönüşüm modülü ekleyin (bkz. Webhooks).
Sihirbaz (önerilir)
Her şeyi birlikte kablolamak için OpenClaw yardımcı aracını kullanın (macOS’ta bağımlılıkları brew ile kurar):- Herkese açık push uç noktası için Tailscale Funnel kullanır.
openclaw webhooks gmail runiçinhooks.gmailyapılandırmasını yazar.- Gmail hook ön ayarını etkinleştirir (
hooks.presets: ["gmail"]).
tailscale.mode etkinleştirildiğinde, OpenClaw otomatik olarak
hooks.gmail.serve.path’ü / olarak ayarlar ve herkese açık yolu
hooks.gmail.tailscale.path’da tutar (varsayılan /gmail-pubsub), çünkü Tailscale
proxy’lemeden önce set-path önekini kaldırır.
Arka ucun önekli yolu alması gerekiyorsa,
hooks.gmail.tailscale.target (veya --tailscale-target) değerini
http://127.0.0.1:8788/gmail-pubsub gibi tam bir URL olarak ayarlayın ve hooks.gmail.serve.path ile eşleştirin.
Özel bir uç nokta mı istiyorsunuz? --push-endpoint <url> veya --tailscale off kullanın.
Platform notu: macOS’ta sihirbaz gcloud, gogcli ve tailscale’yı
Homebrew üzerinden kurar; Linux’ta önce bunları manuel olarak kurun.
Gateway otomatik başlatma (önerilir):
hooks.enabled=truevehooks.gmail.accountayarlandığında, Gatewaygog gmail watch serve’u açılışta başlatır ve watch’ı otomatik yeniler.- Devre dışı bırakmak için
OPENCLAW_SKIP_GMAIL_WATCHER=1ayarlayın (daemon’ı kendiniz çalıştırıyorsanız faydalıdır). - Manuel daemon’ı aynı anda çalıştırmayın; aksi halde
listen tcp 127.0.0.1:8788: bind: address already in useile karşılaşırsınız.
gog gmail watch serve başlatır + otomatik yenileme):
Tek seferlik kurulum
gogtarafından kullanılan OAuth istemcisinin sahibi olan GCP projesini seçin.
- API’leri etkinleştirin:
- Bir konu oluşturun:
- Gmail push’un yayımlamasına izin verin:
Watch’ı başlatın
history_id’ü kaydedin (hata ayıklama için).
Push işleyicisini çalıştırın
Yerel örnek (paylaşılan belirteç kimlik doğrulaması):--token, push uç noktasını korur (x-gog-tokenveya?token=).--hook-url, OpenClaw/hooks/gmail’a işaret eder (eşlenmiş; izole çalıştırma + ana hatta özet).--include-bodyve--max-bytes, OpenClaw’a gönderilen gövde parçasını kontrol eder.
openclaw webhooks gmail run aynı akışı sarar ve watch’ı otomatik yeniler.
İşleyiciyi dışa açın (gelişmiş, desteklenmez)
Tailscale dışı bir tünele ihtiyacınız varsa, manuel olarak bağlayın ve push aboneliğinde herkese açık URL’yi kullanın (desteklenmez, koruma yoktur):Test
İzlenen gelen kutusuna bir mesaj gönderin:Sorun Giderme
Invalid topicName: proje uyuşmazlığı (konu OAuth istemcisi projesinde değil).User not authorized: konudaroles/pubsub.publishereksik.- Boş mesajlar: Gmail push yalnızca
historyIdsağlar;gog gmail historyüzerinden alın.