Statut : plugin téléchargeable pour les messages privés et les espaces via les webhooks de l’API Google Chat (HTTP uniquement).Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Installez Google Chat avant de configurer le canal :Configuration rapide (débutant)
- Créez un projet Google Cloud et activez la Google Chat API.
- Accédez à : Identifiants de la Google Chat API
- Activez l’API si elle ne l’est pas déjà.
- Créez un compte de service :
- Appuyez sur Créer des identifiants > Compte de service.
- Donnez-lui le nom que vous voulez (par exemple,
openclaw-chat). - Laissez les autorisations vides (appuyez sur Continuer).
- Laissez les comptes principaux avec accès vides (appuyez sur OK).
- Créez et téléchargez la clé JSON :
- Dans la liste des comptes de service, cliquez sur celui que vous venez de créer.
- Accédez à l’onglet Clés.
- Cliquez sur Ajouter une clé > Créer une clé.
- Sélectionnez JSON et appuyez sur Créer.
- Stockez le fichier JSON téléchargé sur votre hôte Gateway (par exemple,
~/.openclaw/googlechat-service-account.json). - Créez une application Google Chat dans la configuration Chat de Google Cloud Console :
- Renseignez les informations de l’application :
- Nom de l’application : (par exemple
OpenClaw) - URL de l’avatar : (par exemple
https://openclaw.ai/logo.png) - Description : (par exemple
Assistant IA personnel)
- Nom de l’application : (par exemple
- Activez les fonctionnalités interactives.
- Sous Fonctionnalité, cochez Rejoindre les espaces et les conversations de groupe.
- Sous Paramètres de connexion, sélectionnez URL de point de terminaison HTTP.
- Sous Déclencheurs, sélectionnez Utiliser une URL de point de terminaison HTTP commune pour tous les déclencheurs et définissez-la sur l’URL publique de votre Gateway suivie de
/googlechat.- Conseil : exécutez
openclaw statuspour trouver l’URL publique de votre Gateway.
- Conseil : exécutez
- Sous Visibilité, cochez Rendre cette application Chat disponible pour des personnes et des groupes spécifiques dans
<Your Domain>. - Saisissez votre adresse e-mail (par exemple
user@example.com) dans la zone de texte. - Cliquez sur Enregistrer en bas.
- Renseignez les informations de l’application :
- Activez le statut de l’application :
- Après l’enregistrement, actualisez la page.
- Recherchez la section Statut de l’application (généralement près du haut ou du bas après l’enregistrement).
- Changez le statut en En direct - disponible pour les utilisateurs.
- Cliquez à nouveau sur Enregistrer.
- Configurez OpenClaw avec le chemin du compte de service et l’audience du webhook :
- Env :
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Ou configuration :
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Env :
- Définissez le type et la valeur d’audience du webhook (correspond à la configuration de votre application Chat).
- Démarrez le Gateway. Google Chat enverra des requêtes POST vers votre chemin de webhook.
Ajouter à Google Chat
Une fois le Gateway en cours d’exécution et votre e-mail ajouté à la liste de visibilité :- Accédez à Google Chat.
- Cliquez sur l’icône + (plus) à côté de Messages privés.
- Dans la barre de recherche (où vous ajoutez habituellement des personnes), saisissez le nom de l’application que vous avez configuré dans Google Cloud Console.
- Remarque : le bot n’apparaîtra pas dans la liste de navigation « Marketplace », car il s’agit d’une application privée. Vous devez le rechercher par son nom.
- Sélectionnez votre bot dans les résultats.
- Cliquez sur Ajouter ou Chat pour démarrer une conversation 1:1.
- Envoyez « Bonjour » pour déclencher l’assistant !
URL publique (webhook uniquement)
Les webhooks Google Chat nécessitent un point de terminaison HTTPS public. Pour des raisons de sécurité, n’exposez que le chemin/googlechat à Internet. Gardez le tableau de bord OpenClaw et les autres points de terminaison sensibles sur votre réseau privé.
Option A : Tailscale Funnel (recommandé)
Utilisez Tailscale Serve pour le tableau de bord privé et Funnel pour le chemin de webhook public. Cela garde/ privé tout en exposant uniquement /googlechat.
-
Vérifiez l’adresse à laquelle votre Gateway est lié :
Notez l’adresse IP (par exemple,
127.0.0.1,0.0.0.0ou votre adresse IP Tailscale comme100.x.x.x). -
Exposez le tableau de bord au tailnet uniquement (port 8443) :
-
Exposez publiquement uniquement le chemin de webhook :
- Autorisez le nœud pour l’accès à Funnel : Si vous y êtes invité, consultez l’URL d’autorisation affichée dans la sortie pour activer Funnel pour ce nœud dans votre politique de tailnet.
-
Vérifiez la configuration :
https://<node-name>.<tailnet>.ts.net/googlechat
Votre tableau de bord privé reste limité 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 après les redémarrages. Pour la supprimer plus tard, exécuteztailscale funnel resetettailscale serve reset.
Option B : proxy inverse (Caddy)
Si vous utilisez un proxy inverse comme Caddy, ne proxyfiez que le chemin spécifique :your-domain.com/ sera ignorée ou renvoyée en 404, tandis que your-domain.com/googlechat sera acheminée en toute sécurité vers OpenClaw.
Option C : Cloudflare Tunnel
Configurez les règles d’entrée de votre tunnel pour acheminer uniquement le chemin de webhook :- Chemin :
/googlechat->http://localhost:18789/googlechat - Règle par défaut : HTTP 404 (introuvable)
Fonctionnement
- Google Chat envoie des POST de webhook au Gateway. Chaque requête inclut un en-tête
Authorization: Bearer <token>.- OpenClaw vérifie l’authentification bearer avant de lire/analyser les corps complets des webhooks lorsque l’en-tête est présent.
- Les requêtes Google Workspace Add-on qui transportent
authorizationEventObject.systemIdTokendans le corps sont prises en charge via un budget de corps pré-authentification plus strict.
- OpenClaw vérifie le jeton par rapport aux
audienceType+audienceconfigurés :audienceType: "app-url"→ l’audience est votre URL de webhook HTTPS.audienceType: "project-number"→ l’audience est le numéro de projet Cloud.
- Les messages sont routés par espace :
- Les messages privés utilisent la clé de session
agent:<agentId>:googlechat:direct:<spaceId>. - Les espaces utilisent la clé de session
agent:<agentId>:googlechat:group:<spaceId>.
- Les messages privés utilisent la clé de session
- L’accès aux messages privés repose par défaut sur l’appairage. Les expéditeurs inconnus reçoivent un code d’appairage ; approuvez avec :
openclaw pairing approve googlechat <code>
- Les espaces de groupe nécessitent par défaut une @-mention. Utilisez
botUsersi la détection des mentions a besoin du nom d’utilisateur de l’application.
Cibles
Utilisez ces identifiants pour la livraison et les listes d’autorisation :- Messages privés :
users/<userId>(recommandé). - L’e-mail brut
name@example.comest mutable et utilisé uniquement pour la correspondance de liste d’autorisation directe lorsquechannels.googlechat.dangerouslyAllowNameMatching: true. - Obsolète :
users/<email>est traité comme un ID utilisateur, pas comme une liste d’autorisation d’e-mail. - Espaces :
spaces/<spaceId>.
Points clés de configuration
- Les identifiants du compte de service peuvent également être transmis en ligne avec
serviceAccount(chaîne JSON). serviceAccountRefest également pris en charge (SecretRef env/fichier), y compris les références par compte souschannels.googlechat.accounts.<id>.serviceAccountRef.- Le chemin de webhook par défaut est
/googlechatsiwebhookPathn’est pas défini. dangerouslyAllowNameMatchingréactive la correspondance de principal e-mail mutable pour les listes d’autorisation (mode de compatibilité d’urgence).- Les réactions sont disponibles via l’outil
reactionsetchannels actionlorsqueactions.reactionsest activé. - Les actions de message exposent
sendpour le texte etupload-filepour les envois explicites de pièces jointes.upload-fileacceptemedia/filePath/pathainsi que les paramètres facultatifsmessage,filenameet le ciblage de fil. typingIndicatorprend en chargenone,message(par défaut) etreaction(la réaction nécessite OAuth utilisateur).- Les pièces jointes sont téléchargées via l’API Chat et stockées dans le pipeline média (taille plafonnée par
mediaMaxMb).
Dépannage
405 Method Not Allowed
Si Google Cloud Logs Explorer affiche des erreurs comme :-
Canal non configuré : la section
channels.googlechatest absente de votre configuration. Vérifiez avec :Si cela renvoie « Config path not found », ajoutez la configuration (voir Points clés de configuration). -
Plugin non activé : vérifiez le statut du plugin :
Si cela affiche « disabled », ajoutez
plugins.entries.googlechat.enabled: trueà votre configuration. -
Gateway non redémarré : après avoir ajouté la configuration, redémarrez le Gateway :
Autres problèmes
- Vérifiez
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 et les abonnements aux événements.
- Si le filtrage par mention bloque les réponses, définissez
botUsersur le nom de ressource utilisateur de l’application et vérifiezrequireMention. - Utilisez
openclaw logs --followpendant l’envoi d’un message de test pour voir si les requêtes atteignent le Gateway.
Associé
- Vue d’ensemble des canaux — tous les canaux pris en charge
- Appairage — authentification des messages privés et flux d’appairage
- Groupes — comportement des conversations de groupe et filtrage par mention
- Routage des canaux — routage de session pour les messages
- Sécurité — modèle d’accès et durcissement