Cette page décrit les événements Google Chat auxquels une application Google Chat peut s'abonner à l'aide de l'API Google Workspace Events. Après avoir choisi les types d'événements dont vous avez besoin, créez un abonnement pour commencer à recevoir des événements de Google Chat.
En plus de vous abonner aux événements, vous pouvez également les interroger en appelant l'API Chat. L'appel de l'API Chat vous permet de récupérer des événements de manière périodique ou de rattraper les événements que vous avez peut-être manqués dans un abonnement en raison d'une panne. Pour découvrir comment recevoir et répondre aux événements Chat, consultez la section Gérer les événements Google Chat dans la documentation Chat.
Événements Chat compatibles
Les abonnements Google Workspace vous permettent de recevoir des événements pour les types de modifications suivants dans Chat:
- Messages nouveaux, modifiés ou supprimés dans l'espace
- Nouvelles réactions ou réactions supprimées sur un message
- Ajout, modification ou suppression de membres dans l'espace.
- Modifications apportées à l'espace auquel vous êtes abonné, comme son nom ou sa description.
Ressources que vous pouvez surveiller pour détecter des événements
Pour recevoir des événements, vous devez spécifier une ressource Chat à surveiller, appelée ressource cible de l'abonnement.
L'API Google Workspace Events est compatible avec les ressources cibles suivantes pour Chat:
Ressource cible | Format | Limites |
---|---|---|
Espace |
où SPACE est l'ID dans le
nom de la ressource de la ressource |
L'utilisateur Chat qui autorise l'abonnement doit être membre de l'espace via son compte Google Workspace ou Google. |
Tous les espaces d'un utilisateur |
|
L'abonnement ne reçoit que les événements des espaces dont l'utilisateur est membre via son compte Google Workspace ou Google. |
Utilisateur |
où USER est l'ID dans le
nom de la ressource de la ressource |
L'abonnement ne reçoit que des événements concernant l'utilisateur qui a autorisé l'abonnement. Un utilisateur ne peut pas autoriser un abonnement au nom d'autres utilisateurs. |
Types d'événements pour la création d'abonnements
Lorsque vous créez un abonnement, vous utilisez le champ eventTypes[]
pour spécifier les types d'événements que vous souhaitez recevoir. Les types d'événements sont mis en forme conformément à la spécification CloudEvents, par exemple google.workspace.APPLICATION.RESOURCE.VERSION.ACTION
.
Par exemple, pour recevoir des événements sur les utilisateurs qui rejoignent un espace Chat, vous devez spécifier l'espace comme ressource cible et le type d'événement comme google.workspace.chat.membership.v1.created
. Pour recevoir des événements concernant un utilisateur donné qui rejoint un espace, vous devez spécifier l'utilisateur comme ressource cible et le type d'événement comme google.workspace.chat.membership.v1.created
. Pour en savoir plus sur le fonctionnement des événements, consultez la section Structure des événements Google Workspace.
Le tableau suivant indique les types d'événements acceptés pour les abonnements à des espaces et les abonnements à des utilisateurs. Pour en savoir plus sur les exceptions concernant le déclenchement d'un événement, consultez la section Limites.
Event type (Type d'événement) | Format | Données de ressources | ||
---|---|---|---|---|
Abonnements à des espaces | ||||
Un message est publié. |
|
|
||
Un message est mis à jour. |
|
|
||
Un message est supprimé. |
|
|
||
Une réaction est créée. |
|
|
||
Une réaction est supprimée. |
|
|
||
Un membre est ajouté à l'espace. |
|
|
||
Un membre est mis à jour dans l'espace. |
|
|
||
Un membre est supprimé de l'espace. |
|
|
||
L'espace est mis à jour. |
|
|
||
L'espace est supprimé. |
|
|
||
Abonnements aux utilisateurs | ||||
L'utilisateur devient membre d'un espace.
Tous les nouveaux membres ne déclenchent pas d'événements. Pour en savoir plus, consultez la section Limites. |
|
|
||
L'appartenance de l'utilisateur à un espace est mise à jour. |
|
|
||
L'utilisateur est supprimé en tant que membre direct d'un espace. |
|
|
Types d'événements de lot (sortie uniquement)
En plus des types d'événements auxquels vous vous abonnez, votre application Chat peut également recevoir des événements par lot. Un événement par lot représente de nombreux événements du même type qui se produisent sur une courte période. La charge utile d'un événement par lot contient la liste de toutes les ressources modifiées.
Par exemple, si un utilisateur ajoute 20 utilisateurs à un espace en même temps, votre application Chat peut recevoir un événement par lot (google.workspace.chat.membership.v1.batchCreated
). La charge utile de l'événement contient la liste de toutes les nouvelles ressources Membership
créées lorsque l'utilisateur a ajouté les membres à l'espace.
Vous recevez un événement par lot pour chaque type d'événement auquel vous vous abonnez. Vous n'avez donc pas besoin de spécifier d'événements par lot lorsque vous créez un abonnement. Par exemple, si vous vous abonnez à de nouvelles réactions (google.workspace.chat.reaction.v1.created
), votre application Chat est automatiquement configurée pour recevoir des événements de réaction par lot (google.workspace.chat.reaction.v1.batchCreated
).
Le tableau suivant présente les événements par lot possibles pour un abonnement:
Type d'événement par lot | Format |
---|---|
Plusieurs messages sont publiés. |
|
Plusieurs messages sont mis à jour. |
|
Plusieurs messages sont supprimés. |
|
Plusieurs réactions sont créées. |
|
Plusieurs réactions sont supprimées. |
|
Plusieurs membres sont ajoutés à l'espace auquel vous êtes abonné ou l'utilisateur abonné a été ajouté à plusieurs espaces. |
|
Plusieurs adhésions sont mises à jour dans l'espace auquel l'utilisateur est abonné ou pour l'utilisateur lui-même. |
|
Plusieurs membres sont supprimés de l'espace auquel l'utilisateur est abonné ou l'utilisateur est supprimé de plusieurs espaces. |
|
L'espace dispose de plusieurs mises à jour. |
|
Données d'événement
Cette section décrit les données d'événement et des exemples de charges utiles pour les événements dans Chat.
Lorsque votre abonnement Google Workspace reçoit un événement de Chat, le champ data
contient la charge utile de l'événement. Cette charge utile contient des informations sur la ressource Google Workspace modifiée. Par exemple, si vous vous êtes abonné à des événements d'adhésion dans un espace, la charge utile de ces événements contient des informations sur la ressource spaces.membership
qui a changé.
Données de ressources dans la charge utile de l'événement
Lorsque vous créez un abonnement, vous pouvez spécifier si la charge utile doit inclure des informations sur la ressource ou uniquement son nom. Par exemple, si vous souhaitez recevoir des événements sur les membres d'un espace Chat, vous pouvez spécifier les champs d'une ressource de membres que vous souhaitez recevoir dans la charge utile de l'événement.
Le tableau suivant fournit des exemples de charges utiles JSON pour un abonnement à l'espace Chat spaces/AAAABBBBBB
. Pour chaque événement reçu par l'abonnement, la charge utile apparaît dans le champ data
de l'événement:
Exemple | Event type (Type d'événement) | Charge utile JSON |
---|---|---|
Un utilisateur publie le message "Hello world" dans l'espace. |
|
Inclut les données de ressources
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD", "sender": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "2023-09-07T21:37:36.260127Z", "text": "Hello world", "thread": { "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE" }, "space": { "name": "spaces/AAAABBBBBB" }, "argumentText": "Hello world" } } Excluit les données de ressources
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Un utilisateur devient gestionnaire d'un espace. |
|
Inclut les données de ressources
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MANAGER" } } Excluit les données de ressources
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Un utilisateur remplace la description de l'espace par "Équipe commerciale de Cymbal Labs". | google.workspace.chat.space.v1.updated |
Inclut les données de ressources
{ "space": { "name": "spaces/AAAABBBBBB", "displayName": "Cymbal Sales", "spaceThreadingState": "THREADED_MESSAGES", "spaceType": "SPACE", "spaceDetails": { "description": "Sales team for Cymbal Labs." }, "spaceHistoryState": "HISTORY_ON" } } Excluit les données de ressources
{ "space": { "name": "spaces/AAAABBBBBB" } } |
Deux utilisateurs Chat ont été ajoutés à l'espace en même temps. | google.workspace.chat.membership.v1.batchCreated |
Inclut les données de ressources
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MEMBER" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/987654321234567890", "state": "JOINED", "member": { "name": "users/987654321234567890", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MEMBER" } } ] } Excluit les données de ressources
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Un utilisateur réagit à un message avec l'emoji 😊. | google.workspace.chat.reaction.v1.created |
Inclut les données de ressources
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } } Ignore les données sur les ressources
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" } } |
Les utilisateurs réagissent à un message avec les emoji 😊 et 😸. | google.workspace.chat.reaction.v1.batchCreated |
Inclut les données de ressources
{ "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } }, { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", "user": { "name": "users/98765431234564321", "type": "HUMAN" }, "emoji": { "unicode": "😸" } } } ] } Ignore les données sur les ressources
{ "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" }, "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", } } ] } |
Limites
-
Pour les abonnements aux utilisateurs, les événements concernant les nouveaux membres dans les messages privés ou les chats de groupe sans nom (
google.workspace.chat.membership.v1.created
) ne se déclenchent qu'après la publication du premier message. - Pour recevoir des événements d'abonnement, l'utilisateur doit être un membre direct de l'espace. Si un utilisateur a été ajouté, mis à jour ou supprimé indirectement à un espace via un groupe Google, l'abonnement ne reçoit pas ces événements d'adhésion. Pour comprendre le fonctionnement des adhésions à des groupes Google, consultez la section Ajouter un groupe Google à un espace.
Articles associés
- Structure des événements Google Workspace
- Choisir des champs d'application OAuth
- Créer un abonnement pour recevoir des événements Chat