Gmail Pub/Sub -> OpenClaw
Maqsad: Gmail watch -> Pub/Sub push ->gog gmail watch serve -> OpenClaw webhook.
Talablar
gcloudo‘rnatilgan va tizimga kirilgan (install guide).gog(gogcli) o‘rnatilgan va Gmail akkaunti uchun ruxsat berilgan (gogcli.sh).- OpenClaw hook’lari yoqilgan (qarang: Webhooks).
tailscaletizimga kirilgan (tailscale.com). Qo‘llab-quvvatlanadigan sozlama ommaviy HTTPS endpoint uchun Tailscale Funnel’dan foydalanadi. Other tunnel services can work, but are DIY/unsupported and require manual wiring. Hozirda biz qo‘llab-quvvatlaydigan narsa — Tailscale.
deliver va ixtiyoriy channel/to ni o‘rnatadigan mapping bilan override qiling:
channel + to ni o‘rnating. Aks holda channel: "last"
oxirgi yetkazib berish marshrutidan foydalanadi (WhatsApp’ga qaytadi).
Gmail ishga tushirishlari uchun arzonroq modelni majburlash uchun mapping’da model ni o‘rnating
(provider/model yoki alias). Agar agents.defaults.models ni majburiy qilgan bo‘lsangiz, uni o‘sha yerga kiriting.
Gmail hook’lari uchun aniq standart model va thinking darajasini sozlash uchun konfiguratsiyaga
hooks.gmail.model / hooks.gmail.thinking ni qo‘shing:
- Mapping’dagi per-hook
model/thinkingbaribir bu standartlarni override qiladi. - Fallback tartibi:
hooks.gmail.model→agents.defaults.model.fallbacks→ asosiy (auth/rate-limit/timeouts). - Agar
agents.defaults.modelso‘rnatilgan bo‘lsa, Gmail modeli allowlist’da bo‘lishi kerak. - Gmail hook kontenti odatda tashqi-kontent xavfsizlik chegaralari bilan o‘raladi.
O‘chirish uchun (xavfli),
hooks.gmail.allowUnsafeExternalContent: trueni o‘rnating.
hooks.mappings yoki JS/TS transform modulini
hooks.transformsDir ostiga qo‘shing (Webhooks ga qarang).
Wizard (tavsiya etiladi)
Hammasini birga ulash uchun OpenClaw helper’dan foydalaning (macOS’da brew orqali bog‘liqliklarni o‘rnatadi):- Ommaviy push endpoint uchun Tailscale Funnel’dan foydalanadi.
openclaw webhooks gmail runuchunhooks.gmailkonfiguratsiyasini yozadi.- Gmail hook preset’ini yoqadi (
hooks.presets: ["gmail"]).
tailscale.mode yoqilganida, OpenClaw avtomatik ravishda
hooks.gmail.serve.path ni / ga o‘rnatadi va ommaviy yo‘lni
hooks.gmail.tailscale.path (standart /gmail-pubsub) da saqlaydi, chunki Tailscale
proxy qilishdan oldin set-path prefiksini olib tashlaydi.
Agar backend prefiksli yo‘lni qabul qilishi kerak bo‘lsa,
hooks.gmail.tailscale.target (yoki --tailscale-target) ni
http://127.0.0.1:8788/gmail-pubsub kabi to‘liq URL’ga o‘rnating va hooks.gmail.serve.path bilan moslang.
Maxsus endpoint xohlaysizmi? --push-endpoint <url> dan foydalaning yoki --tailscale off qiling.
Platforma eslatmasi: macOS’da wizard gcloud, gogcli va tailscale ni
Homebrew orqali o‘rnatadi; Linux’da esa avval ularni qo‘lda o‘rnating.
Gateway’ni avtomatik ishga tushirish (tavsiya etiladi):
hooks.enabled=truevahooks.gmail.accounto‘rnatilganda, Gateway yuklanishdagog gmail watch serveni ishga tushiradi va watch’ni avtomatik yangilaydi.- Chiqib ketish uchun
OPENCLAW_SKIP_GMAIL_WATCHER=1ni o‘rnating (daemon’ni o‘zingiz ishga tushirsangiz foydali). - Qo‘lda ishga tushirilgan daemon’ni bir vaqtda ishlatmang, aks holda
listen tcp 127.0.0.1:8788: bind: address already in usexatosiga duch kelasiz.
gog gmail watch serve + auto-renew’ni ishga tushiradi):
Bir martalik sozlash
gogishlatadigan OAuth client’ga egalik qiluvchi GCP loyihasini tanlang.
- API’larni yoqing:
- Mavzu yarating:
- Gmail push’ga nashr etishga ruxsat bering:
Watch’ni boshlang
history_id ni saqlab qo‘ying (debug uchun).
Push handler’ni ishga tushiring
- Mahalliy misol (umumiy token autentifikatsiyasi):
- —bind 127.0.0.1 \
- —port 8788 \
- —path /gmail-pubsub \
—hook-url http://127.0.0.1:18789/hooks/gmail \
—hook-token OPENCLAW_HOOK_TOKEN \--tokenpush endpointini himoya qiladi (x-gog-tokenyoki?token=).
6. --include-body va --max-bytes OpenClaw’ga yuboriladigan body parchalarini boshqaradi.
- Tavsiya etiladi:
openclaw webhooks gmail runxuddi shu oqimni o‘rab beradi va watch’ni avtomatik yangilaydi.
- Agar sizga Tailscale bo‘lmagan tunnel kerak bo‘lsa, uni qo‘lda ulang va push obunasida umumiy URL’dan foydalaning (qo‘llab-quvvatlanmaydi, himoya mexanizmlarisiz):
11. Yaratilgan URL’ni push endpoint sifatida foydalaning:
-
- gcloud pubsub subscriptions create gog-gmail-watch-push \
- —topic gog-gmail-watch \
- —push-endpoint “https://<public-url>/gmail-pubsub?token=<shared>“