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 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 aux événements d'interaction avec l'application Chat, ni en recevoir de ces derniers. 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 le désigne par le terme "application Chat" pour plus de simplicité. 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 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, une application Chat comporte le flux d'informations 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 billetterie.
- La logique de l'application Chat est hébergée dans un système cloud ou sur site qui peut envoyer des messages à un espace Chat spécifique à l'aide d'une URL de webhook.
- 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
- Un compte Google Workspace ayant accès à Chat Votre organisation Google Workspace doit autoriser les utilisateurs à ajouter et utiliser des webhooks entrants.
- Python 3.10.7 ou version ultérieure.
Bibliothèque
httplib2
Si nécessaire, exécutez la commande d'interface de ligne de commande (CLI) suivante pour installer la bibliothèque à l'aide depip
:pip install httplib2
Un espace Chat existant
Node.js
- Un compte Google Workspace ayant accès à Chat Votre organisation Google Workspace doit autoriser les utilisateurs à ajouter et utiliser des webhooks entrants.
- Node.js et npm installés.
- Un espace Chat existant
Java
- Un compte Google Workspace ayant accès à Chat Votre organisation Google Workspace permet aux utilisateurs d'ajouter et d'utiliser des webhooks entrants.
- Java 11 ou version ultérieure.
- Apache Maven
- Un espace Chat existant
Apps Script ;
- Un compte Google Workspace ayant accès à Chat Votre organisation Google Workspace permet aux utilisateurs d'ajouter et d'utiliser des webhooks entrants.
- Un espace Chat existant
Créer un webhook
Pour créer un webhook, enregistrez-le dans l'espace Chat où vous souhaitez recevoir des messages, puis écrivez un script qui envoie les 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 auquel vous souhaitez ajouter un webhook.
- À côté du titre de l'espace, cliquez sur la flèche de développement , puis sur Applis et intégrations.
Cliquez sur
Ajouter des webhooks.Dans le champ Name (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 de webhook, cliquez sur
Plus, puis sur Copier le lien.
Écrire le script de 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 de webhook. L'API Chat répond avec une instance de Message
.
Sélectionnez un langage pour apprendre à 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 de webhook que vous avez copiée lors de l'enregistrement du webhook.
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 de webhook que vous avez copiée lors de l'enregistrement du webhook.
Java
Dans votre répertoire de travail, créez un fichier nommé
pom.xml
.Dans
pom.xml
, copiez et collez le contenu suivant:Dans votre répertoire de travail, créez la structure de répertoires suivante :
src/main/java
.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 de webhook que vous avez copiée lors de l'enregistrement du webhook.
Apps Script ;
Dans un navigateur, accédez à Apps Script.
Cliquez sur New Project (Nouveau projet).
Collez le code suivant :
Remplacez la valeur de la variable
url
par l'URL de webhook que vous avez copiée lors de l'enregistrement du webhook.
Exécuter le script de webhook
Dans une CLI, exécutez le script suivant:
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 une conversation ou y répondre
Spécifiez
spaces.messages.thread.threadKey
dans le corps de la requête de message. Selon que vous démarrez un fil de discussion ou que vous y répondez, utilisez les valeurs suivantes pourthreadKey
:Si vous démarrez un thread, 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 thread, spécifiez l'
threadKey
qui a été défini au démarrage du thread. Par exemple, pour publier une réponse dans le fil de discussion où le message initial utilisaitMY-THREAD
, définissezMY-THREAD
.
Définissez le comportement du thread si le
threadKey
spécifié est introuvable:Répondez à un fil de discussion ou créez-en un. Ajoutez le paramètre
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
à l'URL de webhook. La transmission de ce paramètre d'URL oblige Chat à rechercher un thread existant à l'aide duthreadKey
spécifié. Si l'une d'elles est trouvée, le message est publié en réponse à ce fil de discussion. Si ce n'est pas le cas, le message démarre un nouveau thread correspondant à cethreadKey
.Répondre à un fil de discussion ou ne rien faire. Ajoutez le paramètre
messageReplyOption=REPLY_MESSAGE_OR_FAIL
à l'URL de webhook. La transmission de ce paramètre d'URL oblige Chat à rechercher un thread existant à l'aide duthreadKey
spécifié. Si l'une d'elles est trouvée, le message est publié en réponse à ce fil de discussion. Si aucun résultat n'est détecté, le message n'est pas envoyé.
Pour en savoir plus, consultez
messageReplyOption
.
L'exemple de code suivant démarre un fil de discussion ou y répond:
Python
Node.js
Apps Script ;
Articles associés
- Choisir une architecture d'application Chat
- Envoyer des messages à la carte
- Mettre en forme des messages