Google Chat (Chat API)
Durum: Google Chat API webhook’ları üzerinden DM’ler ve alanlar için hazır (yalnızca HTTP).Hızlı kurulum (başlangıç)
- Bir Google Cloud projesi oluşturun ve Google Chat API’yi etkinleştirin.
- Şuraya gidin: Google Chat API Credentials
- API henüz etkin değilse etkinleştirin.
- Bir Service Account oluşturun:
- Create Credentials > Service Account seçeneğine basın.
- İstediğiniz gibi adlandırın (ör.
openclaw-chat). - İzinleri boş bırakın (Continue düğmesine basın).
- Erişimi olan principals alanını boş bırakın (Done düğmesine basın).
- JSON Key oluşturun ve indirin:
- Service account listesinde, az önce oluşturduğunuz hesaba tıklayın.
- Keys sekmesine gidin.
- Add Key > Create new key seçeneğine tıklayın.
- JSON seçin ve Create düğmesine basın.
- İndirilen JSON dosyasını gateway host’unuzda saklayın (ör.
~/.openclaw/googlechat-service-account.json). - Google Cloud Console Chat Configuration içinde bir Google Chat uygulaması oluşturun:
- Application info bölümünü doldurun:
- App name: (ör.
OpenClaw) - Avatar URL: (ör.
https://openclaw.ai/logo.png) - Description: (ör.
Personal AI Assistant)
- App name: (ör.
- Interactive features seçeneğini etkinleştirin.
- Functionality altında Join spaces and group conversations seçeneğini işaretleyin.
- Connection settings altında HTTP endpoint URL seçeneğini seçin.
- Triggers altında Use a common HTTP endpoint URL for all triggers seçeneğini seçin ve bunu gateway’inizin herkese açık URL’sinin sonuna
/googlechatekleyerek ayarlayın.- İpucu: Gateway’inizin herkese açık URL’sini bulmak için
openclaw statusçalıştırın.
- İpucu: Gateway’inizin herkese açık URL’sini bulmak için
- Visibility altında Make this Chat app available to specific people and groups in <Your Domain> seçeneğini işaretleyin.
- Metin kutusuna e-posta adresinizi girin (ör.
user@example.com). - Alttaki Save düğmesine tıklayın.
- Application info bölümünü doldurun:
- Uygulama durumunu etkinleştirin:
- Kaydettikten sonra sayfayı yenileyin.
- App status bölümünü bulun (genellikle kaydettikten sonra üstte veya altta görünür).
- Durumu Live - available to users olarak değiştirin.
- Yeniden Save düğmesine tıklayın.
- OpenClaw’ı service account yolu + webhook audience ile yapılandırın:
- Ortam değişkeni:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Veya config:
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Ortam değişkeni:
- Webhook audience türünü + değerini ayarlayın (Chat uygulaması yapılandırmanızla eşleşir).
- Gateway’i başlatın. Google Chat webhook yolunuza POST isteği gönderecektir.
Google Chat’e ekleme
Gateway çalıştıktan ve e-posta adresiniz görünürlük listesine eklendikten sonra:- Google Chat adresine gidin.
- Direct Messages yanındaki + (artı) simgesine tıklayın.
- Arama çubuğuna (normalde kişi eklediğiniz yer), Google Cloud Console’da yapılandırdığınız App name değerini yazın.
- Not: Bot, özel bir uygulama olduğu için “Marketplace” göz atma listesinde görünmez. Ada göre aramanız gerekir.
- Sonuçlardan botunuzu seçin.
- 1:1 konuşma başlatmak için Add veya Chat seçeneğine tıklayın.
- Asistanı tetiklemek için “Hello” gönderin!
Herkese açık URL (yalnızca webhook)
Google Chat webhook’ları herkese açık bir HTTPS uç noktası gerektirir. Güvenlik için, internete yalnızca/googlechat yolunu açın. OpenClaw panosunu ve diğer hassas uç noktaları özel ağınızda tutun.
Seçenek A: Tailscale Funnel (Önerilen)
Özel pano için Tailscale Serve, herkese açık webhook yolu için ise Funnel kullanın. Bu, yalnızca/googlechat yolunu açığa çıkarırken / yolunu özel tutar.
-
Gateway’inizin hangi adrese bağlı olduğunu kontrol edin:
IP adresini not alın (ör.
127.0.0.1,0.0.0.0veya100.x.x.xgibi Tailscale IP’niz). -
Panoyu yalnızca tailnet’e açın (8443 portu):
-
Yalnızca webhook yolunu herkese açık hale getirin:
- Düğümü Funnel erişimi için yetkilendirin: İstenirse, tailnet politikanızda bu düğüm için Funnel’ı etkinleştirmek üzere çıktıda gösterilen yetkilendirme URL’sini ziyaret edin.
-
Yapılandırmayı doğrulayın:
https://<node-name>.<tailnet>.ts.net/googlechat
Özel panonuz yalnızca tailnet içinde kalır:
https://<node-name>.<tailnet>.ts.net:8443/
Google Chat uygulaması yapılandırmasında herkese açık URL’yi (:8443 olmadan) kullanın.
Not: Bu yapılandırma yeniden başlatmalardan sonra da kalıcıdır. Daha sonra kaldırmak içintailscale funnel resetvetailscale serve resetkomutlarını çalıştırın.
Seçenek B: Ters proxy (Caddy)
Caddy gibi bir ters proxy kullanıyorsanız yalnızca belirli yolu proxy’leyin:your-domain.com/ adresine gelen tüm istekler yok sayılır veya 404 döndürürken, your-domain.com/googlechat güvenli şekilde OpenClaw’a yönlendirilir.
Seçenek C: Cloudflare Tunnel
Tunnel ingress kurallarınızı yalnızca webhook yolunu yönlendirecek şekilde yapılandırın:- Path:
/googlechat->http://localhost:18789/googlechat - Default Rule: HTTP 404 (Not Found)
Nasıl çalışır
- Google Chat, gateway’e webhook POST istekleri gönderir. Her istek
Authorization: Bearer <token>başlığı içerir.- OpenClaw, başlık mevcut olduğunda tam webhook gövdelerini okumadan/ayrıştırmadan önce bearer kimlik doğrulamasını doğrular.
- Gövdede
authorizationEventObject.systemIdTokentaşıyan Google Workspace Add-on istekleri, daha sıkı bir ön kimlik doğrulama gövde bütçesiyle desteklenir.
- OpenClaw, token’ı yapılandırılmış
audienceType+audienceile doğrular:audienceType: "app-url"→ audience, HTTPS webhook URL’nizdir.audienceType: "project-number"→ audience, Cloud proje numarasıdır.
- Mesajlar alana göre yönlendirilir:
- DM’ler
agent:<agentId>:googlechat:direct:<spaceId>oturum anahtarını kullanır. - Alanlar
agent:<agentId>:googlechat:group:<spaceId>oturum anahtarını kullanır.
- DM’ler
- DM erişimi varsayılan olarak eşleştirme kullanır. Bilinmeyen göndericiler bir eşleştirme kodu alır; şu komutla onaylayın:
openclaw pairing approve googlechat <code>
- Grup alanları varsayılan olarak @-bahsetme gerektirir. Bahsetme algılama uygulamanın kullanıcı adına ihtiyaç duyuyorsa
botUserkullanın.
Hedefler
Teslimat ve izin listeleri için şu tanımlayıcıları kullanın:- Doğrudan mesajlar:
users/<userId>(önerilir). - Ham e-posta
name@example.comdeğiştirilebilir durumdadır ve yalnızcachannels.googlechat.dangerouslyAllowNameMatching: trueolduğunda doğrudan izin listesi eşleştirmesi için kullanılır. - Kullanımdan kaldırılmış:
users/<email>, bir e-posta izin listesi değil, kullanıcı kimliği olarak değerlendirilir. - Alanlar:
spaces/<spaceId>.
Öne çıkan config noktaları
- Service account kimlik bilgileri,
serviceAccountile satır içi olarak da geçirilebilir (JSON string). serviceAccountRefde desteklenir (env/file SecretRef); bunachannels.googlechat.accounts.<id>.serviceAccountRefaltındaki hesap başına referanslar da dahildir.webhookPathayarlanmadıysa varsayılan webhook yolu/googlechatolur.dangerouslyAllowNameMatching, izin listeleri için değiştirilebilir e-posta principal eşleştirmesini yeniden etkinleştirir (acil durum uyumluluk modu).actions.reactionsetkin olduğunda tepkilerreactionsaracı vechannels actionüzerinden kullanılabilir.- Mesaj eylemleri, metin için
sendve açık ek gönderimleri içinupload-filesunar.upload-file, isteğe bağlımessage,filenameve konu hedeflemesiyle birliktemedia/filePath/pathkabul eder. typingIndicator,none,message(varsayılan) vereactiondeğerlerini destekler (reactionkullanıcı OAuth gerektirir).- Ekler Chat API üzerinden indirilir ve medya işlem hattında saklanır (boyut
mediaMaxMbile sınırlandırılır).
Sorun giderme
405 Method Not Allowed
Google Cloud Logs Explorer şu gibi hatalar gösteriyorsa:-
Kanal yapılandırılmamış: Config’inizde
channels.googlechatbölümü eksik. Şununla doğrulayın:“Config path not found” dönerse yapılandırmayı ekleyin (Öne çıkan config noktaları bölümüne bakın). -
Plugin etkin değil: Plugin durumunu kontrol edin:
“disabled” görünüyorsa config’inize
plugins.entries.googlechat.enabled: trueekleyin. -
Gateway yeniden başlatılmamış: Config ekledikten sonra gateway’i yeniden başlatın:
Diğer sorunlar
- Kimlik doğrulama hataları veya eksik audience config için
openclaw channels status --probeçıktısını kontrol edin. - Hiç mesaj gelmiyorsa Chat uygulamasının webhook URL’sini + olay aboneliklerini doğrulayın.
- Bahsetme kapısı yanıtları engelliyorsa
botUserdeğerini uygulamanın kullanıcı kaynak adına ayarlayın verequireMentionayarını doğrulayın. - İsteklerin gateway’e ulaşıp ulaşmadığını görmek için test mesajı gönderirken
openclaw logs --followkullanın.
İlgili
- Kanallara Genel Bakış — desteklenen tüm kanallar
- Eşleştirme — DM kimlik doğrulaması ve eşleştirme akışı
- Gruplar — grup sohbeti davranışı ve bahsetme kapısı
- Kanal Yönlendirme — mesajlar için oturum yönlendirmesi
- Güvenlik — erişim modeli ve güçlendirme