Google Chat (Chat API)
Holati: Google Chat API webhooklari (faqat HTTP) orqali DM va space’lar uchun tayyor.Tezkor sozlash (boshlovchilar uchun)
- Google Cloud loyihasini yarating va Google Chat APIni yoqing.
- O‘ting: Google Chat API Credentials
- Agar API hali yoqilmagan bo‘lsa, uni yoqing.
- Service Account yarating:
- Create Credentials > Service Account tugmasini bosing.
- Istalgan nom bering (masalan,
openclaw-chat). - Ruxsatlarni bo‘sh qoldiring (Continue bosing).
- Kirish huquqiga ega prinsiplalarni bo‘sh qoldiring (Done bosing).
- JSON Key yarating va yuklab oling:
- Service accountlar ro‘yxatida hozir yaratganingizni bosing.
- Keys bo‘limiga o‘ting.
- Add Key > Create new key ni bosing.
- JSON ni tanlang va Create ni bosing.
- Yuklab olingan JSON faylni gateway hostingizda saqlang (masalan,
~/.openclaw/googlechat-service-account.json). - Google Cloud Console Chat Configuration sahifasida Google Chat ilovasini yarating:
- Application info bo‘limini to‘ldiring:
- App name: (masalan,
OpenClaw) - Avatar URL: (masalan,
https://openclaw.ai/logo.png) - Description: (masalan,
Personal AI Assistant)
- App name: (masalan,
- Interactive features ni yoqing.
- Functionality ostida Join spaces and group conversations ni belgilang.
- Connection settings ostida HTTP endpoint URL ni tanlang.
- Triggers ostida Use a common HTTP endpoint URL for all triggers ni tanlang va qiymat sifatida gateway’ning ommaviy URL manziliga
/googlechatqo‘shib kiriting.- Maslahat: Gateway’ning ommaviy URL manzilini topish uchun
openclaw statusni ishga tushiring.
- Maslahat: Gateway’ning ommaviy URL manzilini topish uchun
- Visibility ostida Make this Chat app available to specific people and groups in <Your Domain> ni belgilang.
- Matn maydoniga emailingizni kiriting (masalan,
[email protected]). - Pastdagi Save tugmasini bosing.
- Application info bo‘limini to‘ldiring:
- Ilova holatini yoqing:
- Saqlagandan so‘ng, sahifani yangilang.
- App status bo‘limini toping (odatda saqlagandan keyin yuqori yoki pastki qismda paydo bo‘ladi).
- Holatini Live - available to users ga o‘zgartiring.
- Yana Save ni bosing.
- OpenClaw’ni service account yo‘li + webhook audience bilan sozlang:
- Muhit o‘zgaruvchisi:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Yoki konfiguratsiyada:
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Muhit o‘zgaruvchisi:
- Webhook audience turini va qiymatini belgilang (Chat ilovasi sozlamalariga mos bo‘lishi kerak).
- Start the gateway. Google Chat will POST to your webhook path.
Google Chat’ga qo‘shish
Gateway ishga tushgan va emailingiz visibility ro‘yxatiga qo‘shilgan bo‘lsa:- Google Chat ga o‘ting.
- Direct Messages yonidagi + (plus) belgisini bosing.
- Qidiruv satriga (odatda odam qo‘shadigan joy) Google Cloud Console’da sozlagan App name ni kiriting.
- 4. Eslatma: Bot “Marketplace” ko‘rish ro‘yxatida ko‘rinmaydi, chunki u xususiy ilova. 5. Uni nomi bo‘yicha qidirishingiz kerak.
- Natijalardan botingizni tanlang.
- 1:1 suhbatni boshlash uchun Add yoki Chat ni bosing.
- Assistentni ishga tushirish uchun “Hello” deb yozing!
Ommaviy URL (faqat Webhook)
- Google Chat webhook’lari ommaviy HTTPS endpoint’ni talab qiladi. 11. Xavfsizlik uchun, faqat
/googlechatyo‘lini internetga oching. 12. OpenClaw boshqaruv paneli va boshqa maxfiy endpoint’larni xususiy tarmog‘ingizda saqlang.
Variant A: Tailscale Funnel (Tavsiya etiladi)
-
Xususiy boshqaruv paneli uchun Tailscale Serve’dan, ommaviy webhook yo‘li uchun esa Funnel’dan foydalaning. 15. Bu
/yo‘lini xususiy holda qoldirib, faqat/googlechatni ochadi. -
Gateway qaysi manzilga bog‘langanini tekshiring:
IP manzilni yozib oling (masalan,
127.0.0.1,0.0.0.0yoki100.x.x.xkabi Tailscale IP). -
Dashboard’ni faqat tailnet uchun oching (8443 port):
-
Faqat webhook yo‘lini ommaviy oching:
- Node uchun Funnel ruxsatini tasdiqlang: Agar so‘ralsa, chiqishda ko‘rsatilgan avtorizatsiya URL manziliga o‘ting va tailnet siyosatida ushbu node uchun Funnel’ni yoqing.
-
Sozlamani tekshiring:
- Ommaviy webhook URL’ingiz quyidagicha bo‘ladi:
https://<node-name>.<tailnet>27..ts.net/googlechat
- Xususiy boshqaruv paneli faqat tailnet ichida qoladi:
https://<node-name>.<tailnet>29..ts.net:8443/
:8443siz) ishlating.
- Eslatma: Ushbu sozlama qayta yuklashlardan keyin ham saqlanib qoladi. 32. Keyinroq olib tashlash uchun
tailscale funnel resetvatailscale serve resetbuyruqlarini bajaring.
Variant B: Reverse Proxy (Caddy)
Agar Caddy kabi reverse proxy ishlatsangiz, faqat kerakli yo‘lni proksi qiling:your-domain.com/ ga kelgan so‘rovlar e’tiborga olinmaydi yoki 404 qaytaradi, your-domain.com/googlechat esa xavfsiz tarzda OpenClaw’ga yo‘naltiriladi.
Variant C: Cloudflare Tunnel
Tunnel ingress qoidalarini faqat webhook yo‘lini yo‘naltiradigan qilib sozlang:- Yo‘l:
/googlechat->http://localhost:18789/googlechat - Standart qoida: HTTP 404 (Topilmadi)
Qanday ishlaydi
-
- Google Chat gateway’ga webhook POST’larini yuboradi. 43. Har bir so‘rov
Authorization: Bearer <token>sarlavhasini o‘z ichiga oladi.
- Google Chat gateway’ga webhook POST’larini yuboradi. 43. Har bir so‘rov
- OpenClaw tokenni sozlangan
audienceTypevaaudiencebilan tekshiradi:audienceType: "app-url"→ audience — sizning HTTPS webhook URL manzilingiz.audienceType: "project-number"→ audience — Cloud loyiha raqami.
- Xabarlar space bo‘yicha marshrutlanadi:
- DM’lar uchun sessiya kaliti
agent:<agentId>:googlechat:dm:<spaceId>. - Space’lar uchun sessiya kaliti
agent:<agentId>:googlechat:group:<spaceId>.
- DM’lar uchun sessiya kaliti
-
- DM’ga kirish sukut bo‘yicha pairing orqali amalga oshiriladi. Noma’lum jo‘natuvchilar juftlash kodi oladi; quyidagicha tasdiqlang:
openclaw pairing approve googlechat <code>
- Guruh bo‘shliqlari sukut bo‘yicha @-eslatmani talab qiladi. Agar eslatmani aniqlash uchun ilovaning foydalanuvchi nomi kerak bo‘lsa,
botUserdan foydalaning.
Manzillar (Targets)
Yetkazib berish va allowlist uchun quyidagi identifikatorlardan foydalaning:- Shaxsiy xabarlar:
users/<userId>(tavsiya etiladi) yoki oddiy email[email protected](o‘zgaruvchan principal). - Eskirgan:
users/<email>email allowlist emas, balki user id sifatida talqin qilinadi. - Space’lar:
spaces/<spaceId>.
Muhim konfiguratsiya nuqtalari
- Service account ma’lumotlari
serviceAccount(JSON string) orqali ham bevosita uzatilishi mumkin. - Agar
webhookPathko‘rsatilmagan bo‘lsa, standart qiymat/googlechat. - Agar
actions.reactionsyoqilgan bo‘lsa, reaksiyalarreactionsvositasi vachannels actionorqali mavjud. typingIndicatorquyidagilarni qo‘llab-quvvatlaydi:none,message(standart), vareaction(reactionuchun user OAuth talab qilinadi).- Ilovalar (attachment) Chat API orqali yuklab olinadi va media pipeline’da saqlanadi (
mediaMaxMbbilan hajm cheklangan).
Muammolarni bartaraf etish
405 Method Not Allowed
Agar Google Cloud Logs Explorer’da quyidagi xatolar ko‘rinsa:-
Kanal sozlanmagan: konfiguratsiyangizda
channels.googlechatbo‘limi yo‘q. Quyidagicha tekshiring:Agar “Config path not found” qaytsa, konfiguratsiyani qo‘shing (qarang: Muhim konfiguratsiya nuqtalari). -
Plugin yoqilmagan: Plugin holatini tekshiring:
Agar “disabled” ko‘rsatsa, konfiguratsiyaga
plugins.entries.googlechat.enabled: trueqo‘shing. -
Gateway qayta ishga tushirilmagan: Konfiguratsiya qo‘shilgandan so‘ng gateway’ni qayta ishga tushiring:
Boshqa muammolar
- Autentifikatsiya xatolari yoki audience sozlamasi yetishmasligini tekshirish uchun
openclaw channels status --probedan foydalaning. - Xabarlar kelmasa, Chat ilovasining webhook URL va event subscription’larini tekshiring.
- Agar mention talabi javoblarni bloklasa,
botUserni ilovaning user resource nomiga o‘rnating varequireMentionni tekshiring. - So‘rovlar gateway’ga yetib kelayotganini ko‘rish uchun test xabar yuborayotganda
openclaw logs --followni ishga tushiring.