Cette page décrit les approches d'architecture de service courantes utilisées pour créer des applications Google Chat. Si vous disposez d'une application existante que vous souhaitez intégrer à Google Chat, vous pouvez utiliser ou adapter votre implémentation existante. Si vous créez une application Chat, cette page présente des informations similaires de différentes manières pour vous aider à choisir l'architecture adaptée à votre cas d'utilisation :
- Consultez un tableau récapitulatif.
- Consultez un résumé de chaque style d'architecture.
- Consultez un résumé de la logique de l'application Chat.
- Consultez un résumé par modèles conversationnels de l'application Chat.
Présentation par fonctionnalités et capacités
Le tableau suivant met en évidence les principales fonctionnalités des applications de chat et le style d'architecture de service recommandé (
). Dans certains cas, il est possible de développer un autre style d'architecture avec ces fonctionnalités, mais il ne convient pas aussi bien au cas d'utilisation que d'autres styles ( ).Fonctionnalités et caractéristiques |
Service Web ou HTTP |
Pub/Sub |
Webhooks |
Apps Script |
AppSheet |
Dialogflow |
Script |
---|---|---|---|---|---|---|---|
Audience visée |
|||||||
Votre équipe |
|||||||
Votre entreprise |
|||||||
le public ; |
|||||||
Interactivité de l'utilisateur |
|||||||
Utiliser le traitement du langage naturel |
|||||||
Schémas de messagerie |
|||||||
Envoyer et recevoir des messages synchrones |
|||||||
Envoyer et recevoir des messages synchrones, et envoyer des messages asynchrones |
|||||||
Envoyer uniquement des messages asynchrones |
|||||||
Envoyer des messages depuis un système externe vers un seul espace Chat |
|||||||
Accéder à d'autres services et systèmes |
|||||||
Intégration dans d'autres services Google |
|||||||
Communiquer derrière un pare-feu |
|||||||
Interroger ou s'abonner aux événements Chat |
|||||||
Styles de codage et de déploiement |
|||||||
Développement sans code |
|||||||
Développement avec peu de code |
|||||||
Développement dans le langage de programmation de votre choix |
|||||||
DevOps simplifié |
|||||||
Gestion complète de DevOps et de CI/CD |
Styles d'architecture de service
Cette section décrit certaines des approches architecturales les plus courantes utilisées pour créer des applications Chat.
Service Web ou HTTP
Un service Web ou HTTP est l'architecture la plus couramment déployée, car elle offre aux développeurs la plus grande flexibilité pour créer des applications Chat publiques. Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat est déployée publiquement sur Google Workspace Marketplace.
- L'application Chat peut envoyer et recevoir tous les types de messages : messages synchrones, messages asynchrones et messages provenant d'un système externe.
- L'application Chat est développée dans n'importe quel langage de programmation.
- L'application Chat nécessite une gestion complète de DevOps et de CI/CD.
- Le service d'application Chat est implémenté dans des serveurs cloud ou sur site.
Dans cette conception, vous configurez Chat pour qu'il s'intègre à un service à distance à l'aide de HTTP, comme illustré dans le schéma suivant :
Dans le diagramme précédent, un utilisateur qui interagit avec une application de chat HTTP suit le flux d'informations suivant :
- Un utilisateur envoie un message dans un espace Chat à une application Chat.
- Une requête HTTP est envoyée à un serveur Web qui est un système cloud ou sur site contenant la logique de l'application Chat.
- La logique de l'application Chat peut éventuellement interagir avec des services tiers externes, tels qu'un système de gestion de projet ou un outil de gestion des tickets.
- Le serveur Web renvoie une réponse HTTP au service de l'application Chat dans Chat.
- La réponse est envoyée à l'utilisateur.
- L'application Chat peut éventuellement appeler l'API Chat pour publier des messages de manière asynchrone ou effectuer d'autres opérations.
Cette architecture vous permet d'utiliser de manière flexible les bibliothèques et composants existants dans votre système, car ces applications de chat peuvent être conçues à l'aide de différents langages de programmation. Il existe différentes façons d'implémenter cette architecture. Sur Google Cloud, vous pouvez utiliser Cloud Functions, Cloud Run et App Engine. Pour commencer, consultez Créer une application Google Chat.
Pub/Sub
Si l'application Chat est implémentée derrière un pare-feu, Chat ne peut pas lui envoyer d'appels HTTP. Une approche consiste à utiliser Pub/Sub pour permettre à l'implémentation de l'application Chat de s'abonner à un sujet qui contient les messages de Chat. Pub/Sub est un service de messagerie asynchrone qui dissocie les services de production de messages des services qui traitent ces messages. Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat est conçue derrière un pare-feu.
- L'application Chat reçoit des événements concernant un espace Chat.
- L'application Chat est déployée dans votre organisation.
- L'application Chat peut envoyer et recevoir des messages synchrones, et envoyer des messages asynchrones.
- L'application Chat est développée dans n'importe quel langage de programmation.
- L'application Chat nécessite une gestion complète des opérations de développement et de l'intégration et de la diffusion continues (CI/CD).
Le schéma suivant illustre l'architecture d'une application de chat conçue avec Pub/Sub :
Dans le schéma précédent, un utilisateur qui interagit avec une application de 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'application, qui est un système cloud ou sur site contenant la logique de l'application Chat, s'abonne au sujet Pub/Sub pour 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.
Pour commencer, consultez Utiliser Pub/Sub comme point de terminaison pour votre application Chat.
Webhooks
Vous pouvez créer une application Chat qui ne peut envoyer des messages qu'à un espace Chat spécifique en utilisant des appels à une URL de webhook Chat. Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat est déployée pour votre équipe.
- L'application Chat envoie des messages depuis un système externe vers un seul espace Chat.
Avec cette architecture, l'application Chat est limitée à un espace Chat spécifique et ne permet pas l'interaction de l'utilisateur, comme illustré dans le diagramme suivant :
Dans le schéma précédent, une application Chat présente 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 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 à 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.
Ce type d'application Chat ne peut pas être partagé dans d'autres espaces Chat ni avec d'autres équipes, et ne peut pas être publié sur Google Workspace Marketplace. Les webhooks entrants sont recommandés pour les applications Chat afin de signaler des alertes ou des états, ou pour certains types de prototypage d'applications Chat.
Pour commencer, consultez Envoyer des messages à Chat avec des webhooks.
Apps Script
Vous pouvez créer la logique de votre application Chat entièrement en JavaScript. Google Apps Script est une plate-forme de développement nécessitant peu de programmation pour les applications Chat. Apps Script gère le flux d'autorisation et les jetons OAuth 2.0 pour l'authentification des utilisateurs. Vous pouvez utiliser Apps Script pour créer des applications Chat publiques, mais ce n'est pas recommandé en raison des quotas et limites quotidiens.
Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat est déployée pour votre équipe ou votre organisation.
- L'application Chat peut envoyer et recevoir tous les types de messages : messages synchrones, messages asynchrones et messages provenant d'un système externe.
- L'application Chat nécessite une gestion DevOps simplifiée.
Cette architecture est utile pour les applications Chat qui s'intègrent également à d'autres services Google Workspace et Google, tels que Google Sheets, Google Slides, Google Agenda, Google Drive, Google Maps et YouTube, comme illustré dans le diagramme suivant :
Dans le diagramme précédent, un utilisateur qui interagit avec une application Chat Apps Script suit le flux d'informations suivant :
- Un utilisateur envoie un message à une application Chat, en passant par un message privé ou un espace Chat.
- La logique de l'application Chat implémentée dans Apps Script, qui réside dans Google Cloud, reçoit le message.
- La logique de l'application Chat peut éventuellement s'intégrer aux services Google Workspace, tels qu'Agenda ou Sheets, ou à d'autres services Google, tels que Google Maps ou YouTube.
- La logique de l'application Chat renvoie une réponse au service de l'application Chat dans Chat.
- La réponse est envoyée à l'utilisateur.
Pour commencer, consultez Créer une application Chat avec Apps Script.
AppSheet
Vous pouvez créer une application Chat partagée au niveau du domaine sans code à l'aide d'AppSheet. Vous pouvez simplifier le processus de développement en utilisant le mode de configuration automatique et en suivant des modèles pour créer des actions d'application Chat courantes. Toutefois, certaines fonctionnalités de l'application Web AppSheet ne sont pas disponibles dans les applications Chat.
Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat est déployée pour vous et votre équipe.
- L'application Chat peut envoyer et recevoir des messages synchrones, et envoyer des messages asynchrones.
- L'application Chat nécessite une gestion DevOps simplifiée.
Le schéma suivant illustre l'architecture d'une application Chat créée avec AppSheet :
Dans le diagramme précédent, un utilisateur qui interagit avec une application de chat AppSheet 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.
- La logique de l'application Chat implémentée dans AppSheet, qui réside dans Google Cloud, reçoit le message.
- La logique de l'application Chat peut éventuellement s'intégrer aux services Google Workspace, tels qu'Apps Script ou Google Sheets.
- La logique de l'application Chat renvoie une réponse au service de l'application Chat dans Chat.
- La réponse est envoyée à l'utilisateur.
Pour commencer, consultez Créer une application Chat avec AppSheet.
Dialogflow
Vous pouvez créer une application Chat avec Dialogflow, une plate-forme de langage naturel pour les conversations automatisées et les réponses dynamiques. Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat peut envoyer et recevoir des messages synchrones.
- L'application Chat utilise le traitement du langage naturel pour répondre aux utilisateurs et interagir avec eux.
Le schéma suivant illustre l'architecture d'une application de chat conçue avec Dialogflow :
Dans le diagramme précédent, un utilisateur qui interagit avec une application de chat Dialogflow 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.
- Un agent virtuel Dialogflow, qui réside dans Google Cloud, reçoit et traite le message pour produire une réponse.
- Si vous le souhaitez, vous pouvez utiliser un webhook Dialogflow pour permettre à l'agent Dialogflow d'interagir avec des services tiers externes, tels qu'un système de gestion de projet ou un outil de gestion des tickets.
- L'agent Dialogflow renvoie une réponse au service de l'application Chat dans Chat.
- La réponse est envoyée à l'espace Chat.
Pour commencer, consultez Créer une application Google Chat Dialogflow.
Application ou script de ligne de commande
Vous pouvez créer une application en ligne de commande ou un script qui envoie des messages à Chat ou effectue d'autres opérations, comme créer un espace ou gérer les membres d'un espace, sans permettre aux utilisateurs d'appeler directement l'application Chat ou d'y répondre dans Chat. Cette architecture est recommandée pour les cas d'utilisation suivants :
- L'application Chat est développée dans n'importe quel langage de programmation.
- L'application Chat ne peut envoyer que des messages asynchrones.
Le schéma suivant présente l’architecture :
Dans le schéma précédent, le flux d'informations de l'application Chat est le suivant :
- L'application Chat appelle l'API Chat pour envoyer un message ou effectuer une autre opération.
- Le chat exécute l'opération demandée.
- Si vous le souhaitez, l'application Chat imprime une confirmation dans la CLI.
Implémentation de la logique de l'application de chat
Chat ne limite pas la façon dont vous implémentez la logique de l'application Chat. Vous pouvez créer un analyseur de commandes à syntaxe fixe, utiliser des bibliothèques ou des services d'IA et de traitement du langage avancés, vous abonner à des événements et y répondre, ou toute autre action adaptée à vos objectifs spécifiques.
Gérer les interactions utilisateur
L'application de chat peut interagir avec les utilisateurs de plusieurs manières. Une interaction utilisateur est une action effectuée par un utilisateur pour appeler une application Chat ou interagir avec elle.
Analyseur de commandes
Les applications Chat basées sur des commandes examinent la charge utile des événements d'interaction des applications Chat, puis extraient les commandes et les paramètres de ce contenu. Par exemple, consultez Répondre aux commandes d'application Google Chat.
Une autre approche consiste à tokeniser le message, à extraire la commande, puis à référencer un dictionnaire qui mappe les commandes aux fonctions de gestion pour chaque commande.
Interface utilisateur basée sur des boîtes de dialogue
Les applications basées sur des boîtes de dialogue répondent aux événements d'interaction de l'application Chat en affichant des boîtes de dialogue basées sur des fiches, dans lesquelles l'utilisateur peut interagir avec l'application Chat, par exemple en remplissant des formulaires ou en demandant des actions.
Chaque fois que l'utilisateur exécute une action dans une boîte de dialogue, un nouvel événement d'interaction est envoyé à l'application Chat, qui peut répondre en mettant à jour la boîte de dialogue ou en envoyant un message.
Traitement du langage naturel
De nombreuses implémentations de l'application Chat utilisent le traitement du langage naturel (TLN) pour déterminer ce que demande l'utilisateur. Il existe de nombreuses façons d'implémenter le NLP. Vous pouvez choisir celle qui vous convient le mieux.
Vous pouvez utiliser le NLP dans l'implémentation de votre application Chat avec Dialogflow ES ou l'intégration de Dialogflow CX à Chat, qui vous permet de créer des agents virtuels pour les conversations automatisées et les réponses dynamiques.
Envoyer des demandes de manière proactive à Chat
Les applications de chat peuvent également envoyer des messages ou d'autres requêtes à Chat, qui ne sont pas déclenchés par des interactions directes des utilisateurs dans Chat. Ces applications Chat peuvent être déclenchées, par exemple par des applications tierces ou à l'aide d'une invocation en ligne de commande par un utilisateur. Toutefois, les utilisateurs ne peuvent pas interagir directement avec ces applications Chat dans Chat.
Les applications Chat non interactives utilisent l'API Chat pour envoyer des messages ou d'autres types de requêtes à Chat.
Schémas conversationnels
Vous devez réfléchir à la façon dont vous souhaitez que votre application Chat interagisse avec les utilisateurs. Les sections suivantes décrivent les modèles de conversation que votre application Chat peut implémenter.
Appel et réponse (synchrone)
Dans un modèle d'appel et de réponse synchrone, l'application Chat répond aux messages des utilisateurs de manière individuelle. Un message envoyé à l'application Chat par un utilisateur entraîne une réponse de l'application Chat, comme illustré dans le diagramme suivant :
Dans le diagramme précédent, un utilisateur qui interagit avec une application Chat suit le flux d'informations suivant :
- Un utilisateur envoie un message synchrone à une application Chat (par exemple, "Quelle est ma prochaine réunion ?").
- L'application Chat envoie un message synchrone à l'utilisateur, par exemple "Dr. Silva à 14h30".
Pour ce type de modèle conversationnel, vous pouvez implémenter une architecture d'application de chat à l'aide d'un service Web, de Pub/Sub, d'Apps Script, d'AppSheet ou de Dialogflow.
Plusieurs réponses (asynchrone)
Le modèle de réponses multiples peut inclure des messages synchrones et asynchrones. Ce modèle se caractérise par une communication bidirectionnelle entre les utilisateurs et l'application Chat, l'application Chat générant un nombre quelconque de messages supplémentaires, comme illustré dans le diagramme suivant :
Dans le diagramme précédent, un utilisateur qui interagit avec une application Chat suit le flux d'informations suivant :
- Un utilisateur envoie un message synchrone à une application Chat (par exemple, "Surveille le trafic").
- L'application Chat envoie un message synchrone à l'utilisateur pour confirmer la demande (par exemple, "Surveillance activée").
- Plus tard, l'application Chat envoie un ou plusieurs messages asynchrones à l'utilisateur en appelant l'API REST (par exemple, "Nouveau trafic").
- L'utilisateur envoie un message synchrone supplémentaire à l'application Chat, par exemple "Ignore le trafic".
- L'application Chat envoie un message synchrone à l'utilisateur pour confirmer la requête (par exemple, "Surveillance désactivée").
Pour ce type de modèle conversationnel, vous pouvez implémenter une architecture d'application Chat à l'aide d'un service Web, de Pub/Sub, d'Apps Script ou d'AppSheet.
Interroger des événements ou s'y abonner (asynchrone)
Dans un modèle asynchrone piloté par les événements, l'application Chat reçoit des événements en interrogeant l'API Chat ou en créant un abonnement à un espace ou à un utilisateur Chat à l'aide de l'API Google Workspace Events. Les événements représentent des modifications apportées aux ressources Chat, par exemple lorsqu'un nouveau message est publié ou lorsqu'un utilisateur rejoint un espace. Les applications Chat basées sur les événements examinent la charge utile de l'événement pour obtenir des données sur la ressource Chat modifiée, puis répondent en conséquence.
Les applications Chat peuvent recevoir de nombreux types d'événements, y compris des événements concernant les espaces, les membres, les messages et les réactions. Lorsqu'une application Chat reçoit un événement en interrogeant l'API Chat ou via un abonnement actif, elle peut éventuellement générer un nombre quelconque de réponses asynchrones, qu'elle renvoie à Chat à l'aide de l'API Chat.
Vous pouvez utiliser ce type de logique pour mettre à jour des systèmes externes, tels qu'un système de gestion des tickets, ou envoyer des messages à un espace Chat de manière asynchrone (par exemple, en envoyant un message de bienvenue lorsqu'un nouvel utilisateur rejoint un espace Chat).
Le schéma suivant illustre un exemple de modèle conversationnel axé sur les événements :
Dans le schéma précédent, l'interaction entre Chat et l'application Chat suit le flux d'informations suivant :
- L'application Chat s'abonne à un espace Google Chat.
- L'espace auquel l'application Chat est abonnée est modifié.
- L'application Chat envoie un événement à un sujet dans Pub/Sub, qui sert de point de terminaison de notification pour l'abonnement. L'événement contient des données sur ce qui a été modifié dans la ressource.
- L'application Chat traite le message Pub/Sub contenant l'événement et, si nécessaire, prend des mesures.
Pour ce type de modèle conversationnel, vous pouvez implémenter une architecture d'application Chat à l'aide de Pub/Sub, d'un service Web ou d'Apps Script.
Pour en savoir plus sur la réception d'événements et la réponse à ceux-ci, consultez Utiliser les événements Google Chat.
Message unidirectionnel d'une application Chat
Un modèle de message unidirectionnel d'application Chat permet à une application Chat d'envoyer des messages asynchrones dans un espace Chat, mais ne permet pas aux utilisateurs d'interagir directement avec l'application Chat. Ce modèle n'est ni conversationnel ni interactif, mais peut être utile pour des tâches telles que le signalement d'alarmes, comme illustré dans le diagramme suivant :
Dans le diagramme précédent, un utilisateur se trouvant dans le même espace que l'application Chat suit le flux d'informations suivant :
- L'application Chat envoie un message asynchrone à l'utilisateur en appelant l'API Chat ou en publiant un message sur une URL de webhook (par exemple, "Alerte de dépassement de la capacité de la file d'attente").
- L'application Chat peut également envoyer des messages asynchrones supplémentaires.
Pour ce type de modèle conversationnel, vous pouvez implémenter une architecture d'application Chat à l'aide d'un service Web, d'un webhook, d'Apps Script, d'AppSheet, d'une application en ligne de commande ou d'un script.
Message unidirectionnel à une application Chat
Un modèle de message unidirectionnel à une application Chat permet à un utilisateur d'envoyer un message à une application Chat sans que celle-ci ne réponde, tout en traitant la demande. Bien que cette architecture soit techniquement possible, elle nuit à l'expérience utilisateur. Nous vous déconseillons donc fortement ce modèle.
Articles associés
- Créer une application Google Chat
- Utiliser Pub/Sub comme point de terminaison pour votre application Chat
- Envoyer des messages à Chat avec des webhooks entrants
- Créer une application Chat avec Apps Script
- Envoyer un message Chat à partir d'une automatisation avec AppSheet
- Intégration de Dialogflow ES à Chat
- Intégration de Dialogflow CX avec Chat