Google Chat (Chat API)
Statut : pret pour les Messages prives et les espaces via les webhooks de l’API Google Chat (HTTP uniquement).Demarrage rapide (debutant)
- Creez un projet Google Cloud et activez la Google Chat API.
- Allez sur : Identifiants de l’API Google Chat
- Activez l’API si ce n’est pas deja fait.
- Creez un Service Account :
- Cliquez sur Create Credentials > Service Account.
- Donnez-lui le nom de votre choix (par ex.,
openclaw-chat). - Laissez les autorisations vides (cliquez sur Continue).
- Laissez les principaux ayant acces vides (cliquez sur Done).
- Creez et telechargez la cle JSON :
- Dans la liste des comptes de service, cliquez sur celui que vous venez de creer.
- Allez dans l’onglet Keys.
- Cliquez sur Add Key > Create new key.
- Selectionnez JSON et cliquez sur Create.
- Stockez le fichier JSON telecharge sur l’hote de votre Gateway (passerelle) (par ex.,
~/.openclaw/googlechat-service-account.json). - Creez une application Google Chat dans la Configuration Chat de la Google Cloud Console :
- Renseignez les Application info :
- App name : (par ex.
OpenClaw) - Avatar URL : (par ex.
https://openclaw.ai/logo.png) - Description : (par ex.
Personal AI Assistant)
- App name : (par ex.
- Activez Interactive features.
- Dans Functionality, cochez Join spaces and group conversations.
- Dans Connection settings, selectionnez HTTP endpoint URL.
- Dans Triggers, selectionnez Use a common HTTP endpoint URL for all triggers et definissez-le sur l’URL publique de votre Gateway (passerelle) suivie de
/googlechat.- Astuce : Executez
openclaw statuspour trouver l’URL publique de votre Gateway (passerelle).
- Astuce : Executez
- Dans Visibility, cochez Make this Chat app available to specific people and groups in <Your Domain>.
- Saisissez votre adresse e-mail (par ex.
[email protected]) dans le champ de texte. - Cliquez sur Save en bas de page.
- Renseignez les Application info :
- Activez le statut de l’application :
- Apres l’enregistrement, actualisez la page.
- Recherchez la section App status (generalement pres du haut ou du bas apres l’enregistrement).
- Changez le statut en Live - available to users.
- Cliquez de nouveau sur Save.
- Configurez OpenClaw avec le chemin du compte de service + l’audience du webhook :
- Env :
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Ou config :
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Env :
- Definissez le type et la valeur de l’audience du webhook (correspond a la configuration de votre application Chat).
- Demarrez la Gateway (passerelle). Google Chat enverra des POST vers le chemin de votre webhook.
Ajouter a Google Chat
Une fois la Gateway (passerelle) demarree et votre e-mail ajoute a la liste de visibilite :- Allez sur Google Chat.
- Cliquez sur l’icone + (plus) a cote de Direct Messages.
- Dans la barre de recherche (la ou vous ajoutez habituellement des personnes), saisissez le App name que vous avez configure dans la Google Cloud Console.
- Remarque : Le bot n’apparaitra pas dans la liste de navigation « Marketplace » car il s’agit d’une application privee. Vous devez le rechercher par son nom.
- Selectionnez votre bot dans les resultats.
- Cliquez sur Add ou Chat pour demarrer une conversation 1:1.
- Envoyez « Hello » pour declencher l’assistant !
URL publique (webhook uniquement)
Les webhooks Google Chat necessitent un point de terminaison HTTPS public. Pour des raisons de securite, n’exposez que le chemin/googlechat a Internet. Conservez le tableau de bord OpenClaw et les autres points de terminaison sensibles sur votre reseau prive.
Option A : Tailscale Funnel (recommande)
Utilisez Tailscale Serve pour le tableau de bord prive et Funnel pour le chemin du webhook public. Cela permet de garder/ prive tout en n’exposant que /googlechat.
-
Verifiez a quelle adresse votre Gateway (passerelle) est liee :
Notez l’adresse IP (par ex.,
127.0.0.1,0.0.0.0, ou votre IP Tailscale comme100.x.x.x). -
Exposez le tableau de bord uniquement au tailnet (port 8443) :
-
Exposez uniquement le chemin du webhook publiquement :
- Autorisez le nœud pour l’acces Funnel : Si vous y etes invite, visitez l’URL d’autorisation affichee dans la sortie pour activer Funnel pour ce nœud dans la politique de votre tailnet.
-
Verifiez la configuration :
https://<node-name>.<tailnet>.ts.net/googlechat
Votre tableau de bord prive reste reserve au tailnet :
https://<node-name>.<tailnet>.ts.net:8443/
Utilisez l’URL publique (sans :8443) dans la configuration de l’application Google Chat.
Remarque : Cette configuration persiste apres les redemarrages. Pour la supprimer ulterieurement, executeztailscale funnel resetettailscale serve reset.
Option B : Proxy inverse (Caddy)
Si vous utilisez un proxy inverse comme Caddy, ne proxyfiez que le chemin specifique :your-domain.com/ sera ignoree ou retournera une 404, tandis que your-domain.com/googlechat est achemine en toute securite vers OpenClaw.
Option C : Tunnel Cloudflare
Configurez les regles d’entree de votre tunnel pour n’acheminer que le chemin du webhook :- Path :
/googlechat->http://localhost:18789/googlechat - Default Rule : HTTP 404 (Not Found)
Fonctionnement
- Google Chat envoie des POST de webhook a la Gateway (passerelle). Chaque requete inclut un en-tete
Authorization: Bearer <token>. - OpenClaw verifie le jeton par rapport aux
audienceType+audienceconfigures :audienceType: "app-url"→ l’audience est l’URL HTTPS de votre webhook.audienceType: "project-number"→ l’audience est le numero du projet Cloud.
- Les messages sont routes par espace :
- Les Messages prives utilisent la cle de session
agent:<agentId>:googlechat:dm:<spaceId>. - Les espaces utilisent la cle de session
agent:<agentId>:googlechat:group:<spaceId>.
- Les Messages prives utilisent la cle de session
- L’acces aux Messages prives est appariement par defaut. Les expediteurs inconnus recoivent un code d’appariement ; approuvez avec :
openclaw pairing approve googlechat <code>
- Les espaces de groupe necessitent par defaut une @-mention. Utilisez
botUsersi la detection de mention doit utiliser le nom d’utilisateur de l’application.
Cibles
Utilisez ces identifiants pour la livraison et les listes d’autorisation :- Messages prives :
users/<userId>ouusers/<email>(les adresses e-mail sont acceptees). - Obsolète :
users/<email>est traité comme un identifiant utilisateur, et non comme une liste d’autorisation d’emails. - Espaces :
spaces/<spaceId>.
Points forts de configuration
- Les informations d’identification du compte de service peuvent aussi etre transmises en ligne avec
serviceAccount(chaine JSON). - Le chemin de webhook par defaut est
/googlechatsiwebhookPathn’est pas defini. - Les reactions sont disponibles via l’outil
reactionsetchannels actionlorsqueactions.reactionsest active. typingIndicatorprend en chargenone,message(par defaut) etreaction(la reaction necessite l’OAuth utilisateur).- Les pieces jointes sont telechargees via l’API Chat et stockees dans le pipeline media (taille plafonnee par
mediaMaxMb).
Problemes courants
405 Method Not Allowed
Si Google Cloud Logs Explorer affiche des erreurs telles que :-
Canal non configure : La section
channels.googlechatest absente de votre configuration. Verifiez avec :Si cela renvoie « Config path not found », ajoutez la configuration (voir Points forts de configuration). -
Plugin non active : Verifiez l’etat du plugin :
S’il affiche « disabled », ajoutez
plugins.entries.googlechat.enabled: truea votre configuration. -
Gateway (passerelle) non redemarree : Apres l’ajout de la configuration, redemarrez la Gateway (passerelle) :
Autres problemes
- Verifiez
openclaw channels status --probepour les erreurs d’authentification ou une configuration d’audience manquante. - Si aucun message n’arrive, confirmez l’URL de webhook de l’application Chat + les abonnements aux evenements.
- Si le filtrage par mention bloque les reponses, definissez
botUsersur le nom de ressource utilisateur de l’application et verifiezrequireMention. - Utilisez
openclaw logs --followlors de l’envoi d’un message de test pour voir si les requetes atteignent la Gateway (passerelle).