Cette page explique comment créer une application Chat à l'aide de Pub/Sub. Ce type d' architecture pour une application Chat est utile si votre organisation dispose d'un pare-feu, qui peut empêcher Chat d' envoyer des messages à votre application Chat, ou si l' application Chat utilise l' API Google Workspace Events. Toutefois, cette architecture présente les limites suivantes, car ces applications Chat ne peuvent envoyer et recevoir que des messages asynchrones :
- Impossible d'utiliser des boîtes de dialogue dans les messages. Utilisez plutôt un message de carte.
- Impossible de mettre à jour des cartes individuelles avec une réponse synchrone. Mettez plutôt à jour
l'intégralité du message en appelant la
patchméthode.
Le schéma suivant montre l'architecture d'une application Chat créée avec Pub/Sub :
Dans le schéma précédent, un utilisateur interagissant avec une application Chat Pub/Sub suit le flux d'informations suivant :
Un utilisateur envoie un message dans Chat à une application Chat, soit dans un message privé, soit dans un espace Chat, ou un événement se produit dans un espace Chat pour lequel l'application Chat dispose d'un abonnement actif.
Chat envoie le message à un sujet Pub/Sub.
Un serveur d'applications, qui est un système cloud ou sur site contenant la logique de l'application Chat, s'abonne au sujet Pub/Sub afin de recevoir le message via le pare-feu.
Si vous le souhaitez, l'application Chat peut appeler l'API Chat pour publier des messages de manière asynchrone ou effectuer d'autres opérations.
Prérequis
Lorsque vous créez votre application Chat, vous devez décocher Créer cette application Chat en tant que module complémentaire Google Workspace sur la page de configuration de l'API Chat dans la console Google Cloud. Consultez Publier l'application dans Google Chat.
Node.js
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Un projet Google Cloud avec facturation activée. Pour vérifier que la facturation est activée pour un projet existant, consultez Vérifier l'état de facturation de vos projets. Pour créer un projet et configurer la facturation, consultez Créer un projet Google Cloud.
- Node.js 14 ou version ultérieure
- L'outil de gestion de packages npm
-
Un projet Node.js initialisé. Pour initialiser un nouveau projet, créez un dossier et accédez-y, puis exécutez la commande suivante dans l'interface de ligne de commande :
npm init
Python
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Un projet Google Cloud avec facturation activée. Pour vérifier que la facturation est activée pour un projet existant, consultez Vérifier l'état de facturation de vos projets. Pour créer un projet et configurer la facturation, consultez Créer un projet Google Cloud.
- Python 3.6 ou version ultérieure
- L'outil de gestion de packages pip
Java
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Un projet Google Cloud avec facturation activée. Pour vérifier que la facturation est activée pour un projet existant, consultez Vérifier l'état de facturation de vos projets. Pour créer un projet et configurer la facturation, consultez Créer un projet Google Cloud.
- Java 11 ou version ultérieure
- L'outil de gestion de packages Maven
Configurer l'environnement
Avant d'utiliser les API Google, vous devez les activer dans un projet Google Cloud. Vous pouvez activer une ou plusieurs API dans un même projet Google Cloud.Dans la console Google Cloud, activez l'API Google Chat et l'API Pub/Sub.
Configurer Pub/Sub
Créez un sujet Pub/Sub auquel l'API Chat peut envoyer des messages. Nous vous recommandons d'utiliser un seul sujet par application Chat.
Accordez à Chat l'autorisation de publier dans le sujet en attribuant le rôle Éditeur Pub/Sub au compte de service suivant :
chat-api-push@system.gserviceaccount.comCréez un compte de service pour que l'application Chat s'autorise auprès de Pub/Sub et de Chat, puis enregistrez le fichier de clé privée dans votre répertoire de travail.
Créez un abonnement pull au sujet.
Attribuez le rôle d'abonné Pub/Sub à l'abonnement pour le compte de service que vous avez créé précédemment.
Écrire le script
Node.js
Dans une interface de ligne de commande, fournissez les identifiants du compte de service :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHDans une interface de ligne de commande, fournissez l'ID du projet Google Cloud :
export PROJECT_ID=PROJECT_IDDans une interface de ligne de commande, fournissez l'ID d'abonnement pour l'abonnement Pub/Sub que vous avez créé précédemment :
export SUBSCRIPTION_ID=SUBSCRIPTION_IDDans votre répertoire de travail, créez un fichier nommé
package.json.Dans le fichier
package.json, collez le code suivant :Dans votre répertoire de travail, créez un fichier nommé
index.js.Dans
index.js, collez le code suivant :
Python
Dans une interface de ligne de commande, fournissez les identifiants du compte de service :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHDans une interface de ligne de commande, fournissez l'ID du projet Google Cloud :
export PROJECT_ID=PROJECT_IDDans une interface de ligne de commande, fournissez l'ID d'abonnement pour l'abonnement Pub/Sub que vous avez créé précédemment :
export SUBSCRIPTION_ID=SUBSCRIPTION_IDDans votre répertoire de travail, créez un fichier nommé
requirements.txt.Dans le fichier
requirements.txt, collez le code suivant :Dans votre répertoire de travail, créez un fichier nommé
app.py.Dans
app.py, collez le code suivant :
Java
Dans une interface de ligne de commande, fournissez les identifiants du compte de service :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHDans une interface de ligne de commande, fournissez l'ID du projet Google Cloud :
export PROJECT_ID=PROJECT_IDDans une interface de ligne de commande, fournissez l'ID d'abonnement pour l'abonnement Pub/Sub que vous avez créé précédemment :
export SUBSCRIPTION_ID=SUBSCRIPTION_IDDans votre répertoire de travail, créez un fichier nommé
pom.xml.Dans le fichier
pom.xml, collez le code suivant :Dans votre répertoire de travail, créez la structure de répertoire
src/main/java.Dans le répertoire
src/main/java, créez un fichier nomméMain.java.Dans
Main.java, collez le code suivant :
Publier l'application dans Chat
Dans la console Google Cloud, accédez à Menu > API et services > API et services activés > API Google Chat > Configuration.
Configurez l'application Chat pour Pub/Sub :
- Décochez Créer cette application Chat en tant que module complémentaire Google Workspace. Une boîte de dialogue s'ouvre pour vous demander de confirmer. Dans la boîte de dialogue, cliquez sur Désactiver.
- Dans Nom de l'application, saisissez
Quickstart App. - Dans URL de l'avatar, saisissez
https://developers.google.com/chat/images/quickstart-app-avatar.png. - Dans Description, saisissez
Quickstart app. - Sous Fonctionnalité, sélectionnez Rejoindre des espaces et des conversations de groupe.
- Sous Paramètres de connexion, sélectionnez Cloud Pub/Sub et collez le nom du sujet Pub/Sub que vous avez créé précédemment.
- Sous Visibilité, sélectionnez Rendre cette application Google Chat disponible pour des personnes et des groupes spécifiques dans votre domaine, puis saisissez votre adresse e-mail.
- Sous Journaux, sélectionnez Enregistrer les erreurs dans la journalisation.
Cliquez sur Enregistrer.
L'application est prête à recevoir des messages dans Chat et à y répondre.
Exécuter le script
Dans une interface de ligne de commande, accédez à votre répertoire de travail et exécutez le script :
Node.js
npm install
npm start
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Java
mvn compile exec:java -Dexec.mainClass=Main
Lorsque vous exécutez le code, l'application commence à écouter les messages publiés dans le sujet Pub/Sub.
Tester votre application Chat
Pour tester votre application Chat, ouvrez un espace de message privé avec l'application Chat et envoyez un message :
Ouvrez Google Chat à l'aide du compte Google Workspace que vous avez fourni lorsque vous vous êtes ajouté en tant que testeur de confiance.
- Cliquez sur Nouveau chat.
- Dans le champ Ajouter une ou plusieurs personnes, saisissez le nom de votre application Chat.
Sélectionnez votre application Chat dans les résultats. Un message privé s'ouvre.
- Dans le nouveau message privé avec l'application, saisissez
Hello, puis appuyez surenter.
Pour ajouter des testeurs de confiance et en savoir plus sur les tests des fonctionnalités interactives, consultez Tester les fonctionnalités interactives des applications Google Chat.
Résoudre les problèmes
Lorsqu'une application ou carte Google Chat renvoie une erreur, l'interface Chat affiche un message indiquant "Un problème est survenu." ou "Impossible de traiter votre demande." Parfois, l'UI Chat n'affiche aucun message d'erreur, mais l'application ou la carte Chat produit un résultat inattendu. Par exemple, un message de carte peut ne pas s'afficher.
Bien qu'aucun message d'erreur ne s'affiche dans l'UI Chat, des messages d'erreur descriptifs et des données de journal sont disponibles pour vous aider à corriger les erreurs lorsque la journalisation des erreurs pour les applications Chat est activée. Pour obtenir de l'aide sur l'affichage, le débogage et la correction des erreurs, consultez Résoudre et corriger les erreurs Google Chat.
Libérer de l'espace
Pour éviter que les ressources utilisées lors de ce tutoriel ne soient facturées sur votre compte Google Cloud, nous vous recommandons de supprimer le projet Cloud.
- Dans la console Google Cloud, accédez à la page Gérer les ressources. Cliquez sur Menu > IAM et administration > Gérer les ressources.
- Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer .
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Articles associés
Pour ajouter d'autres fonctionnalités à votre application Chat, consultez les ressources suivantes :