Cette page explique comment créer une application de 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 les 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 méthode
patch
.
Le schéma suivant illustre l'architecture d'une application de chat créée avec Pub/Sub:
Dans le schéma précédent, un utilisateur qui interagit avec une application de chat Pub/Sub a le flux d'informations suivant:
Un utilisateur envoie un message dans Chat à une application Chat, en passant par un message privé ou 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'application, 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.
L'application Chat peut éventuellement appeler l'API Chat pour publier des messages de manière asynchrone ou effectuer d'autres opérations.
Prérequis
Java
- Compte Google Workspace Business ou Enterprise ayant 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 la section Créer un projet Google Cloud.
- Java 11 ou version ultérieure
- L'outil de gestion de paquets Maven
Python
- Compte Google Workspace Business ou Enterprise ayant 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 la section Créer un projet Google Cloud.
- Python 3.6 ou version ultérieure
- Outil de gestion des paquets pip
Node.js
- Compte Google Workspace Business ou Enterprise ayant 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 la section Créer un projet Google Cloud.
- Node.js 14 ou version ultérieure
- L'outil de gestion de paquets npm
-
Projet Node.js initialisé. Pour initialiser un nouveau projet, créez et accédez à un nouveau dossier, puis exécutez la commande suivante dans votre interface de ligne de commande:
npm init
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.com
Créez un compte de service pour que l'application Chat puisse l'autoriser avec Pub/Sub et 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
Java
Dans une CLI, fournissez les identifiants du compte de service:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Dans une CLI, fournissez l'ID de projet Google Cloud:
export PROJECT_ID=PROJECT_ID
Dans une CLI, indiquez l'ID de l'abonnement Pub/Sub que vous avez créé précédemment:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Dans 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épertoires
src/main/java
.Dans le répertoire
src/main/java
, créez un fichier nomméMain.java
.Dans
Main.java
, collez le code suivant:
Python
Dans une CLI, fournissez les identifiants du compte de service:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Dans une CLI, fournissez l'ID de projet Google Cloud:
export PROJECT_ID=PROJECT_ID
Dans une CLI, indiquez l'ID de l'abonnement Pub/Sub que vous avez créé précédemment:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Dans 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:
Node.js
Dans une CLI, fournissez les identifiants du compte de service:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Dans une CLI, fournissez l'ID de projet Google Cloud:
export PROJECT_ID=PROJECT_ID
Dans une CLI, indiquez l'ID de l'abonnement Pub/Sub que vous avez créé précédemment:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
Dans 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:
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:
- Dans le champ 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 Recevoir des messages privés et 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 accessible à certains utilisateurs et groupes de votre domaine, puis saisissez votre adresse e-mail.
- Sous Journaux, sélectionnez Consigner les erreurs dans Logging.
- Dans le champ Nom de l'application, saisissez
Cliquez sur Enregistrer.
L'application est prête à recevoir et à répondre aux messages dans Chat.
Exécuter le script
Dans une CLI, accédez à votre répertoire de travail et exécutez le script:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
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 messages privés avec l'application Chat et envoyez un message:
Ouvrez Google Chat avec le 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 la section Tester les fonctionnalités interactives des applications Google Chat.
Résoudre les problèmes
Lorsqu'une application ou une fiche Google Chat renvoie une erreur, l'interface Chat affiche le message "Un problème s'est produit". ou "Impossible de traiter votre demande". Il arrive que l'interface utilisateur de Chat n'affiche aucun message d'erreur, mais que l'application ou la fiche Chat produise un résultat inattendu. Par exemple, un message de fiche peut ne pas s'afficher.
Bien qu'un message d'erreur ne s'affiche pas dans l'interface utilisateur de 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 savoir comment afficher, déboguer et corriger les erreurs, consultez Résoudre et corriger les erreurs Google Chat.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans 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: