Cette page explique comment configurer un webhook pour envoyer des messages asynchrones dans un espace Chat à l'aide de déclencheurs externes. Par exemple, vous pouvez configurer une application de surveillance pour avertir le personnel d'astreinte sur Chat lorsqu'un serveur tombe en panne. Pour envoyer un message synchrone avec une application Chat, consultez la section Envoyer un message.
Avec ce type de conception d'architecture, les utilisateurs ne peuvent pas interagir avec le webhook ni avec l'application externe connectée, car la communication est à sens unique. Les webhooks ne sont pas conversationnels. Ils ne peuvent pas répondre aux messages des utilisateurs ni recevoir de événements d'interaction avec l'application Chat. Pour répondre aux messages, créez une application Chat au lieu d'un webhook.
Bien qu'un webhook ne soit pas techniquement une application Chat (les webhooks connectent des applications à l'aide de requêtes HTTP standards), cette page l'appelle une application Chat pour simplifier. Chaque webhook ne fonctionne que dans l'espace Chat dans lequel il est enregistré. Les webhooks entrants fonctionnent dans les messages privés, mais uniquement lorsque toutes les applications Chat sont activées pour tous les utilisateurs. Vous ne pouvez pas publier de webhooks sur Google Workspace Marketplace.
Le schéma suivant illustre l'architecture d'un webhook connecté à Chat:
Dans le schéma précédent, le flux d'informations d'une application Chat est le suivant:
- La logique de l'application Chat reçoit des informations de services tiers externes, tels qu'un système de gestion de projet ou un outil de gestion des tickets.
- La logique de l'application Chat est hébergée dans un système cloud ou sur site qui peut envoyer des messages à l'aide d'une URL de webhook vers un espace Chat spécifique.
- Les utilisateurs peuvent recevoir des messages de l'application Chat dans cet espace Chat spécifique, mais ne peuvent pas interagir avec l'application Chat.
Prérequis
Python
- Compte Google Workspace Business ou Enterprise ayant accès à Google Chat. Votre organisation Google Workspace doit autoriser les utilisateurs à ajouter et à utiliser des webhooks entrants.
- Python 3.6 ou version ultérieure
- Outil de gestion des paquets pip
Bibliothèque
httplib2
Pour installer la bibliothèque, exécutez la commande suivante dans votre interface de ligne de commande:pip install httplib2
Espace Google Chat Pour en créer un à l'aide de l'API Google Chat, consultez la section Créer un espace. Pour en créer un dans Chat, consultez la documentation du Centre d'aide.
Node.js
- Compte Google Workspace Business ou Enterprise ayant accès à Google Chat. Votre organisation Google Workspace doit autoriser les utilisateurs à ajouter et à utiliser des webhooks entrants.
- Node.js 14 ou version ultérieure
- L'outil de gestion de paquets npm
- Espace Google Chat Pour en créer un à l'aide de l'API Google Chat, consultez la section Créer un espace. Pour en créer un dans Chat, consultez la documentation du centre d'aide.
Java
- Compte Google Workspace Business ou Enterprise ayant accès à Google Chat. Votre organisation Google Workspace doit autoriser les utilisateurs à ajouter et à utiliser des webhooks entrants.
- Java 11 ou version ultérieure
- L'outil de gestion de paquets Maven
- Espace Google Chat Pour en créer un à l'aide de l'API Google Chat, consultez la section Créer un espace. Pour en créer un dans Chat, consultez la documentation du centre d'aide.
Apps Script
- Compte Google Workspace Business ou Enterprise ayant accès à Google Chat. Votre organisation Google Workspace doit autoriser les utilisateurs à ajouter et à utiliser des webhooks entrants.
- Créez un projet Apps Script autonome et activez le service Chat avancé.
- Espace Google Chat Pour en créer un à l'aide de l'API Google Chat, consultez la section Créer un espace. Pour en créer un dans Chat, consultez la documentation du centre d'aide.
Créer un webhook
Pour créer un webhook, enregistrez-le dans l'espace Chat dans lequel vous souhaitez recevoir des messages, puis écrivez un script qui envoie des messages.
Enregistrer le webhook entrant
- Dans un navigateur, ouvrez Chat. Les webhooks ne sont pas configurables depuis l'application mobile Chat.
- Accédez à l'espace dans lequel vous souhaitez ajouter un webhook.
- À côté du titre du salon, cliquez sur la flèche de développement , puis sur Applications et intégrations.
Cliquez sur
Ajouter des webhooks.Dans le champ Nom, saisissez
Quickstart Webhook
.Dans le champ URL de l'avatar, saisissez
https://developers.google.com/chat/images/chat-product-icon.png
.Cliquez sur Enregistrer.
Pour copier l'URL du webhook, cliquez sur
Plus, puis sur Copier le lien.
Écrire le script du webhook
L'exemple de script de webhook envoie un message à l'espace dans lequel le webhook est enregistré en envoyant une requête POST
à l'URL du webhook. L'API Chat répond avec une instance de Message
.
Sélectionnez une langue pour découvrir comment créer un script de webhook:
Python
Dans votre répertoire de travail, créez un fichier nommé
quickstart.py
.Dans
quickstart.py
, collez le code suivant:Remplacez la valeur de la variable
url
par l'URL du webhook que vous avez copiée lorsque vous l'avez enregistré.
Node.js
Dans votre répertoire de travail, créez un fichier nommé
index.js
.Dans
index.js
, collez le code suivant:Remplacez la valeur de la variable
url
par l'URL du webhook que vous avez copiée lorsque vous l'avez enregistré.
Java
Dans votre répertoire de travail, créez un fichier nommé
pom.xml
.Dans
pom.xml
, copiez et collez le code suivant:Dans votre répertoire de travail, créez la structure de répertoire
src/main/java
suivante.Dans le répertoire
src/main/java
, créez un fichier nomméApp.java
.Dans
App.java
, collez le code suivant:Remplacez la valeur de la variable
URL
par l'URL du webhook que vous avez copiée lorsque vous l'avez enregistré.
Apps Script
Dans un navigateur, accédez à Apps Script.
Cliquez sur Nouveau projet.
Collez le code suivant :
Remplacez la valeur de la variable
url
par l'URL du webhook que vous avez copiée lorsque vous l'avez enregistré.
Exécuter le script du webhook
Dans une CLI, exécutez le script:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- Cliquez sur Exécuter.
Lorsque vous exécutez le code, le webhook envoie un message à l'espace dans lequel vous l'avez enregistré.
Démarrer ou répondre à un fil de discussion
Spécifiez
spaces.messages.thread.threadKey
dans le corps de la requête de message. Selon que vous démarrez ou répondez à un fil de discussion, utilisez les valeurs suivantes pourthreadKey
:Si vous démarrez un fil de discussion, définissez
threadKey
sur une chaîne arbitraire, mais notez cette valeur pour publier une réponse au fil de discussion.Si vous répondez à un fil de discussion, spécifiez le
threadKey
défini au début du fil. Par exemple, pour publier une réponse au fil de discussion dans lequel le message initial a utiliséMY-THREAD
, définissezMY-THREAD
.
Définissez le comportement du thread si le
threadKey
spécifié n'est pas trouvé:Répondez à un fil de discussion ou en démarrez un nouveau. Ajoutez le paramètre
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
à l'URL du webhook. Si vous transmettez ce paramètre d'URL, Chat recherche un fil de discussion existant à l'aide de l'threadKey
spécifiée. Si un fil de discussion est trouvé, le message est publié en réponse à ce fil. Si aucun n'est trouvé, le message démarre un nouveau thread correspondant à cethreadKey
.Répondez à un fil de discussion ou ne faites rien. Ajoutez le paramètre
messageReplyOption=REPLY_MESSAGE_OR_FAIL
à l'URL du webhook. Si vous transmettez ce paramètre d'URL, Chat recherche un fil de discussion existant à l'aide de l'threadKey
spécifié. Si un fil de discussion est trouvé, le message est publié en réponse à ce fil. Si aucun n'est trouvé, le message n'est pas envoyé.
Pour en savoir plus, consultez
messageReplyOption
.
L'exemple de code suivant démarre ou répond à un fil de discussion:
Python
Node.js
Apps Script
Gérer les erreurs
Les requêtes webhook peuvent échouer pour différentes raisons, y compris les suivantes:
- Demande incorrecte.
- Le webhook ou l'espace qui l'héberge est supprimé.
- Problèmes intermittents tels que la connectivité réseau ou les limites de quota
Lorsque vous créez votre webhook, vous devez gérer les erreurs de manière appropriée en procédant comme suit:
- Journalisation de l'échec.
- Pour les erreurs basées sur le temps, les quotas ou la connectivité réseau, relancer la requête avec un intervalle exponentiel entre les tentatives.
- Ne rien faire, ce qui est approprié si l'envoi du message webhook n'est pas important.
L'API Google Chat renvoie les erreurs sous la forme d'un google.rpc.Status
, qui inclut une erreur HTTP code
qui indique le type d'erreur rencontré: une erreur client (série 400) ou une erreur serveur (série 500). Pour consulter toutes les mises en correspondance HTTP, consultez google.rpc.Code
.
{
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
Pour savoir comment interpréter les codes d'état HTTP et gérer les erreurs, consultez la section Erreurs.
Limites et points à noter
- Lorsque vous créez un message avec un webhook dans l'API Google Chat, la réponse ne contient pas le message complet.
La réponse ne renseigne que les champs
name
etthread.name
. - Les webhooks sont soumis à la limite de requêtes
spaces.messages.create
par espace de 60 par 60 secondes, partagée entre toutes les applications Chat de l'espace. Pour en savoir plus sur les quotas de l'API Chat, consultez la section Limites d'utilisation.
Articles associés
- Choisir une architecture d'application Chat
- Envoyer des messages via une carte
- Mettre en forme des messages