Configuration du canal Google Chat
Ce que vous saurez faire
- Effectuer une conversation 1:1 privée avec votre assistant IA dans Google Chat
- Déclencher l'assistant IA par @mention dans les espaces Google Chat
- Maîtriser l'authentification Service Account et la configuration Webhook
- Apprendre à exposer en sécurité une URL publique avec Tailscale Funnel
Votre situation actuelle
Vous souhaitez utiliser un assistant IA via Google Chat dans votre entreprise ou votre équipe, mais vous ne savez pas comment :
- Créer et configurer un projet Google Cloud
- Configurer l'authentification Service Account
- Configurer un Webhook pour que Google Chat puisse se connecter à votre Gateway
- Exposer la Gateway sur Internet en toute sécurité
Quand utiliser cette approche
Scénarios adaptés à l'utilisation du canal Google Chat :
- Votre équipe utilise principalement Google Chat pour la communication
- Besoin d'utiliser un assistant IA dans l'environnement Google Workspace
- Souhait de collaborer via Google Chat Spaces
- Besoin de recevoir des messages Google Chat via un Webhook public
Scénarios non adaptés :
- Utilisation personnelle (WebChat, Telegram, WhatsApp recommandés)
- Besoin d'autorisation utilisateur OAuth (Google Chat ne prend en charge que Service Account)
Concept clé
Flux de travail du canal Google Chat :
sequenceDiagram
participant User as Utilisateur
participant GC as Google Chat
participant Clawdbot as Clawdbot Gateway
User->>GC: Envoyer un message
GC->>Clawdbot: POST webhook (avec Bearer Token)
Clawdbot->>Clawdbot: Vérifier l'audience
Clawdbot->>Clawdbot: Vérifier les permissions (DM/Groupe)
Clawdbot->>Clawdbot: Traiter le message (Agent)
Clawdbot->>GC: Retourner une réponse
GC->>User: Afficher la réponseConcepts clés :
| Concept | Description |
|---|---|
| Service Account | Méthode d'authentification Google Cloud pour l'identité du bot |
| Webhook | Point de terminaison HTTP où Google Chat POST les messages vers la Gateway |
| Audience | Cible utilisée pour vérifier les requêtes webhook (app-url ou project-number) |
| Appariement DM | Mécanisme de sécurité par défaut, les expéditeurs inconnus doivent être approuvés |
TIP
Le canal Google Chat prend uniquement en charge l'authentification Service Account, pas l'autorisation utilisateur OAuth. Si vous avez besoin d'autorisations au niveau utilisateur, envisagez d'utiliser d'autres canaux.
🎒 Préparatifs
Assurez-vous d'avoir :
- ✅ Complété le Démarrage rapide et installé Clawdbot
- ✅ Gateway en cours d'exécution (
clawdbot gateway --port 18789) - ✅ Accès à un compte Google Cloud
- ✅ Compréhension de base des commandes terminal
WARNING
Le Webhook Google Chat nécessite un point de terminaison HTTPS public. Ce tutoriel présentera comment exposer le service en toute sécurité à l'aide de Tailscale Funnel ou d'un proxy inverse.
Suivez le guide
Étape 1 : Créer un projet Google Cloud et activer l'API Chat
Pourquoi Vous avez d'abord besoin d'un projet Google Cloud pour héberger l'application Chat et le Service Account.
- Visitez Google Chat API Credentials
- Si l'API n'est pas activée, cliquez sur Enable API
Ce que vous devriez voir :
- L'API Chat est activée et affiche "API enabled"
- La page de gestion des Credentials s'ouvre
Étape 2 : Créer un Service Account
Pourquoi Le Service Account est l'identité du bot, utilisée pour authentifier les requêtes webhook.
- Sur la page Credentials, cliquez sur Create Credentials > Service Account
- Entrez un nom (par exemple
clawdbot-chat) - Cliquez sur Continue (passer les autorisations)
- Laissez le contrôle d'accès vide, cliquez sur Done
Ce que vous devriez voir :
- Le nouveau Service Account apparaît dans la liste
Étape 3 : Créer et télécharger la clé JSON
Pourquoi La clé JSON contient les informations d'identification, Clawdbot en a besoin pour vérifier les requêtes Google Chat.
- Cliquez sur le Service Account que vous venez de créer
- Allez dans l'onglet Keys
- Cliquez sur Add Key > Create new key
- Sélectionnez le format JSON, cliquez sur Create
- Le fichier JSON téléchargé sera automatiquement enregistré
Ce que vous devriez voir :
- Le navigateur télécharge un fichier
.json
WARNING
⚠️ Important : cette clé JSON ne peut être téléchargée qu'une seule fois, conservez-la soigneusement ! Si elle est perdue, vous devez la recréer.
Étape 4 : Stocker le fichier Service Account
Pourquoi Clawdbot doit lire le fichier Key pour vérifier les requêtes Google Chat.
- Déplacez le fichier JSON téléchargé vers un emplacement sécurisé :bash
mv ~/Downloads/*.json ~/.clawdbot/googlechat-service-account.json - Définissez les permissions de fichier (optionnel mais recommandé) :bash
chmod 600 ~/.clawdbot/googlechat-service-account.json
Ce que vous devriez voir :
- Le fichier est stocké dans le répertoire
~/.clawdbot/ - Les permissions sont définies pour lecture/écriture uniquement par le propriétaire
Étape 5 : Créer l'application Google Chat
Pourquoi L'application Chat définit l'apparence, le comportement et l'URL webhook du bot.
- Visitez Google Cloud Console Chat Configuration
- Remplissez les Application info :
- App name :
Clawdbot(ou autre nom) - Avatar URL :
https://clawd.bot/logo.png(optionnel) - Description :
Personal AI Assistant(optionnel)
- App name :
- Activez les Interactive features
- Sous Functionality, cochez Join spaces and group conversations
- Sous Connection settings, sélectionnez HTTP endpoint URL
- Sous Visibility, sélectionnez Make this Chat app available to specific people and groups in <Your Domain>
- Entrez votre email Google Workspace (par exemple
user@example.com) - Cliquez sur Save en bas de la page
Ce que vous devriez voir :
- La configuration de l'application est enregistrée
- La page affiche la section "App status"
Étape 6 : Configurer les déclencheurs Webhook
Pourquoi Les déclencheurs définissent quand Google Chat envoie des messages à la Gateway.
- Actualisez la page après l'enregistrement
- Trouvez la section App status (généralement en haut ou en bas)
- Changez le statut en Live - available to users
- Cliquez à nouveau sur Save
Ce que vous devriez voir :
- Le statut de l'application affiche "Live - available to users"
INFO
💡 Astuce : l'URL Webhook sera configurée à l'étape 7. Si vous n'êtes pas sûr, vous pouvez utiliser d'abord un espace réservé https://example.com/googlechat et le mettre à jour plus tard.
Étape 7 : Obtenir l'URL publique de la Gateway
Pourquoi Google Chat a besoin d'une URL HTTPS publique pour envoyer les requêtes webhook.
Exécutez la commande suivante pour voir l'URL publique de la Gateway :
clawdbot statusCe que vous devriez voir :
- La sortie contient l'URL publique (par exemple
https://your-node.tailnet.ts.net)
WARNING
Si la Gateway n'est pas configurée avec Tailscale ou un proxy inverse, vous devez d'abord configurer l'accès public (voir l'étape suivante).
Étape 8 : Exposer le point de terminaison Webhook (choisissez l'une des options)
TIP
Tailscale Funnel est recommandé car il peut exposer uniquement le chemin /googlechat, gardant les autres points de terminaison privés.
Option A : Tailscale Funnel (recommandé)
Pourquoi Tailscale Funnel
- Expose uniquement des chemins spécifiques, améliorant la sécurité
- La Gateway interne reste privée, seul le Webhook est accessible
- Pas besoin d'acheter un domaine et de configurer SSL
Vérifier l'adresse de liaison de la Gateway :
bashss -tlnp | grep 18789Notez l'adresse IP (par exemple
127.0.0.1,0.0.0.0ou IP Tailscale comme100.x.x.x)Exposer uniquement le panneau de contrôle au tailnet (port 8443) :
bash# Si lié à localhost (127.0.0.1 ou 0.0.0.0) : tailscale serve --bg --https 8443 http://127.0.0.1:18789 # Si lié à l'IP Tailscale (par exemple 100.106.161.80) : tailscale serve --bg --https 8443 http://100.106.161.80:18789Exposer le chemin Webhook publiquement :
bash# Si lié à localhost (127.0.0.1 ou 0.0.0.0) : tailscale funnel --bg --set-path /googlechat http://127.0.0.1:18789/googlechat # Si lié à l'IP Tailscale (par exemple 100.106.161.80) : tailscale funnel --bg --set-path /googlechat http://100.106.161.80:18789/googlechatAutoriser le nœud à accéder à Funnel (si demandé) :
- Visitez l'URL d'autorisation affichée dans la sortie
- Activez Funnel pour ce nœud dans le panneau d'administration Tailscale
Vérifier la configuration :
bashtailscale serve status tailscale funnel status
Ce que vous devriez voir :
- Serve et Funnel sont tous deux en cours d'exécution
- URL Webhook publique :
https://<node-name>.<tailnet>.ts.net/googlechat - Panneau de contrôle privé :
https://<node-name>.<tailnet>.ts.net:8443/
Option B : Proxy inverse Caddy
Pourquoi Caddy
- Prend en charge HTTPS automatique
- Configuration flexible du routage de chemin
Créez un Caddyfile :
txtyour-domain.com { reverse_proxy /googlechat* localhost:18789 }Démarrez Caddy :
bashcaddy run --config Caddyfile
Ce que vous devriez voir :
- Caddy a démarré et écoute sur le port 443
- Seul le chemin
your-domain.com/googlechatest routé vers la Gateway
Option C : Tunnel Cloudflare
Pourquoi Cloudflare Tunnel
- CDN mondiale gratuite
- Configuration simple des règles de chemin
- Configurez les règles d'entrée du tunnel :
- Path :
/googlechat->http://localhost:18789/googlechat - Default Rule : HTTP 404 (Not Found)
- Path :
Étape 9 : Mettre à jour l'URL Webhook Google Chat
Pourquoi Maintenant que vous avez une URL publique, mettez à jour la configuration de l'application Chat pour pointer vers le bon point de terminaison.
- Retournez à la page Google Cloud Console Chat Configuration
- Dans la section Triggers :
- Sélectionnez Use a common HTTP endpoint URL for all triggers
- Définissez sur :
<votre URL publique>/googlechat - Par exemple :
https://your-node.tailnet.ts.net/googlechat
- Cliquez sur Save
Ce que vous devriez voir :
- Les déclencheurs sont mis à jour et enregistrés
Étape 10 : Configurer Clawdbot
Pourquoi Indiquer à Clawdbot quel Service Account et chemin Webhook utiliser.
Méthode A : Variables d'environnement
export GOOGLE_CHAT_SERVICE_ACCOUNT_FILE="/path/to/service-account.json"
clawdbot gateway restartMéthode B : Fichier de configuration
Modifiez ~/.clawdbot/clawdbot.json :
{
channels: {
googlechat: {
enabled: true,
serviceAccountFile: "/Users/yourname/.clawdbot/googlechat-service-account.json",
audienceType: "app-url",
audience: "https://your-node.tailnet.ts.net/googlechat",
webhookPath: "/googlechat",
dm: {
policy: "pairing",
allowFrom: ["users/1234567890", "your-email@example.com"]
},
groupPolicy: "allowlist",
groups: {
"spaces/AAAA": {
allow: true,
requireMention: true,
users: ["users/1234567890"],
systemPrompt: "Short answers only."
}
}
}
}
}Redémarrer la Gateway :
clawdbot gateway restartCe que vous devriez voir :
- La Gateway démarre et affiche "Google Chat default: enabled, configured, ..."
- Pas de logs d'erreur
Étape 11 : Ajouter le bot à Google Chat
Pourquoi Dernière étape, trouver et ajouter le bot dans Google Chat.
- Visitez Google Chat
- Cliquez sur l'icône + (plus) à côté de Direct Messages
- Dans la zone de recherche (généralement là où on ajoute des contacts), entrez le App name (le nom configuré à l'étape 5)
- Note : le bot n'apparaîtra pas dans la liste de navigation "Marketplace" car c'est une application privée. Vous devez le rechercher par nom.
- Sélectionnez votre bot dans les résultats
- Cliquez sur Add ou Chat pour commencer une conversation 1:1
Ce que vous devriez voir :
- Le bot apparaît dans la liste des contacts
- La fenêtre de conversation s'ouvre
Étape 12 : Envoyer un message de test
Pourquoi Vérifier que la configuration est correcte et que les messages sont transmis normalement.
Dans la fenêtre de conversation, entrez :
HelloCe que vous devriez voir :
- Le bot répond avec un message de bienvenue ou de confirmation
- Les logs de la Gateway affichent les messages reçus et traités
Point de contrôle ✅
Vérifier que la configuration a réussi :
# Vérifier le statut du canal
clawdbot channels status
# Devrait afficher :
# Google Chat default: enabled, configured, webhook listeningINFO
Si vous voyez des erreurs, exécutez clawdbot channels status --probe pour voir des informations de diagnostic détaillées.
Détails de la configuration
Authentification Service Account
| Option de configuration | Type | Valeur par défaut | Description |
|---|---|---|---|
serviceAccountFile | string | - | Chemin du fichier JSON Service Account |
serviceAccount | string|object | - | Informations d'identification JSON en ligne (alternative au fichier) |
audienceType | "app-url"|"project-number" | "app-url" | Type de vérification : URL ou numéro de projet |
audience | string | - | Valeur de l'audience (URL ou numéro de projet) |
Stratégie DM
Par défaut, les expéditeurs inconnus doivent être appariés :
| Option de configuration | Type | Valeur par défaut | Description |
|---|---|---|---|
dm.enabled | boolean | non défini | Activer ou non la réception DM |
dm.policy | "pairing" | "open" | "pairing" |
dm.allowFrom | array | [] | Liste des expéditeurs autorisés (IDs utilisateur ou emails) |
Apparier un nouvel expéditeur :
clawdbot pairing approve googlechat <code d'appariement>Stratégie de groupe
| Option de configuration | Type | Valeur par défaut | Description |
|---|---|---|---|
groupPolicy | "allowlist" | "disabled" | "allowlist" |
requireMention | boolean | true | Nécessite ou non une @mention pour déclencher |
groups | object | {} | Configuration par ID d'espace |
Autoriser des groupes spécifiques :
{
channels: {
googlechat: {
groups: {
"spaces/AAAA": {
allow: true,
requireMention: true,
users: ["users/1234567890"],
systemPrompt: "Short answers only."
}
}
}
}
}Autres configurations
| Option de configuration | Type | Valeur par défaut | Description |
|---|---|---|---|
webhookPath | string | "/googlechat" | Chemin du Webhook |
botUser | string | - | Nom de ressource utilisateur du bot (pour la détection de mention) |
typingIndicator | "none" | "message" | "reaction" |
actions.reactions | boolean | false | Prend en charge ou non les réactions emoji |
mediaMaxMb | number | non défini | Taille maximale du fichier média (Mo) |
Pièges courants
405 Method Not Allowed
Symptôme : Google Cloud Logs Explorer affiche 405 Method Not Allowed
Cause : Le gestionnaire Webhook n'est pas enregistré
Résolution :
Vérifiez que la section
channels.googlechatexiste dans la configuration :bashclawdbot config get channels.googlechatVérifiez le statut du plugin :
bashclawdbot plugins list | grep googlechatSi "disabled" s'affiche, ajoutez la configuration :
json5{ plugins: { entries: { googlechat: { enabled: true } } } }Redémarrez la Gateway :
bashclawdbot gateway restart
Aucun message reçu
Symptôme : Pas de réponse après l'envoi d'un message
Étapes de dépannage :
- Exécutez
clawdbot logs --followet envoyez un message de test - Vérifiez l'URL Webhook et l'abonnement aux événements de l'application Chat
- Vérifiez que la configuration
audienceest correcte - Si le gating des mentions bloque la réponse, définissez
botUseret vérifiezrequireMention
Tailscale Funnel ne démarre pas
Symptôme : tailscale funnel renvoie une erreur
Cause : Authentification par mot de passe non configurée
Résolution :
Ajoutez dans ~/.clawdbot/clawdbot.json :
{
gateway: {
auth: {
mode: "password"
}
}
}Résumé du cours
- Créé un projet Google Cloud et un Service Account
- Configuré l'application Google Chat et le Webhook
- Exposé le point de terminaison via Tailscale Funnel ou proxy inverse
- Configuré Clawdbot pour utiliser l'authentification Service Account
- Appris les mécanismes d'appariement DM et de @mention de groupe
- Testé les messages 1:1 et de groupe
Prochain cours
Le prochain cours apprendra le canal Signal.
Vous apprendrez :
- Comment installer et configurer signal-cli
- Les permissions et le contrôle d'accès du canal Signal
- Les différences de configuration avec Google Chat
Annexe : Référence du code source
Cliquer pour afficher l'emplacement du code source
Dernière mise à jour : 2026-01-27
| Fonctionnalité | Chemin du fichier | Ligne |
|---|---|---|
| Définition des types Google Chat | src/config/types.googlechat.ts | 1-109 |
| Schéma Zod Google Chat | src/config/zod-schema.providers-core.ts | 273-341 |
| Registre des canaux | src/channels/registry.ts | 61-67 |
| Analyse des mentions de groupe | src/channels/plugins/group-mentions.ts | 158-175 |
| Documentation Google Chat | docs/channels/googlechat.md | 1-221 |
Types clés :
GoogleChatConfig: Interface de configuration complète Google ChatGoogleChatDmConfig: Configuration de la stratégie d'accès DMGoogleChatGroupConfig: Configuration de l'espace de groupeGoogleChatActionConfig: Configuration des actions (comme les réactions emoji)
Champs de configuration clés :
audienceType: "app-url" ou "project-number", utilisé pour vérifier les requêtes webhookaudience: URL Webhook ou numéro de projet, associé àaudienceTypedm.policy: Par défaut "pairing", contrôle l'accès DM inconnugroupPolicy: Stratégie d'accès de groupe, "allowlist" ou "disabled"
Mécanisme d'authentification :
- Utilise les informations d'identification JSON du Service Account Google
- Les requêtes webhook sont vérifiées via l'en-tête
Authorization: Bearer <token> - Le token est comparé à l'option de configuration
audiencepour s'assurer que la requête provient d'une source légitime