S'abonner aux événements Google Chat

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. Une fois que vous avez déterminé 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 pu manquer d'un abonnement en raison d'une panne. Pour découvrir comment recevoir des événements Chat et y répondre, consultez Utiliser les événements Google Chat dans la documentation Chat.

Événements Chat compatibles

Les abonnements Google Workspace vous permettent de recevoir des événements concernant les types de modifications suivants dans Chat :

  • Nouveaux messages, messages 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 un nouveau nom ou une nouvelle description.

Ressources pour lesquelles vous pouvez surveiller les é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

//chat.googleapis.com/spaces/SPACE

SPACE correspond à l'ID dans le nom de ressource de la ressource space de l'API Chat. Vous pouvez obtenir l'ID à partir de l'URL de l'espace ou à l'aide de la méthode spaces.list().

L'utilisateur ou l'application Chat qui autorise l'abonnement doit être membre de l'espace avec son compte Google Workspace ou Google. Formats acceptés :
Tous les espaces d'un utilisateur

//chat.googleapis.com/spaces/-

L'abonnement ne reçoit que les événements des espaces dont l'utilisateur est membre avec son compte Google Workspace ou Google. Compatible uniquement avec l'authentification des utilisateurs.
Utilisateur

//cloudidentity.googleapis.com/users/USER

USER correspond à l'ID dans le nom de ressource de la ressource user de l'API Chat. Pour en savoir plus, consultez Identifier et spécifier les utilisateurs Google Chat.

L'abonnement ne reçoit que les événements concernant l'utilisateur qui l'a autorisé. Un utilisateur ne peut pas autoriser un abonnement au nom d'autres utilisateurs. Compatible uniquement avec l'authentification des 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 concernant les utilisateurs qui rejoignent un espace Chat, vous spécifiez 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 Structure des événements Google Workspace.

Le tableau suivant indique les types d'événements compatibles avec les abonnements aux espaces et aux utilisateurs. Pour en savoir plus sur les exceptions concernant les éléments qui déclenchent un événement, consultez Limites.

Type d'événement Format Données de ressources
Abonnements aux espaces  
Un message est publié.

google.workspace.chat.message.v1.created

space.message

Un message est modifié.

google.workspace.chat.message.v1.updated

space.message

Un message est supprimé.

google.workspace.chat.message.v1.deleted

space.message

Une réaction est créée.

google.workspace.chat.reaction.v1.created

space.message.reaction

Une réaction est supprimée.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Un membre est ajouté à l'espace.

google.workspace.chat.membership.v1.created

space.membership

Un membre est modifié dans l'espace.

google.workspace.chat.membership.v1.updated

space.membership

Un membre est supprimé de l'espace.

google.workspace.chat.membership.v1.deleted

space.membership

L'espace est mis à jour.

google.workspace.chat.space.v1.updated

space

L'espace est supprimé.

google.workspace.chat.space.v1.deleted

space

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 Limites.

google.workspace.chat.membership.v1.created

space.membership

L'appartenance de l'utilisateur à un espace est mise à jour.

google.workspace.chat.membership.v1.updated

space.membership

L'utilisateur est supprimé en tant que membre direct d'un espace.

google.workspace.chat.membership.v1.deleted

space.membership

Types d'événements par 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 est un événement qui 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 une liste de toutes les nouvelles ressources Membership qui ont été créées lorsque l'utilisateur a ajouté les membres à l'espace.

Vous recevez un événement de lot pour chaque type d'événement auquel vous vous abonnez. Vous n'avez donc pas besoin de spécifier les événements de 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 affiche les événements par lot possibles pour un abonnement :

Type d'événement par lot Format
Plusieurs messages sont publiés.

google.workspace.chat.message.v1.batchCreated

Plusieurs messages sont modifiés.

google.workspace.chat.message.v1.batchUpdated

Plusieurs messages sont supprimés.

google.workspace.chat.message.v1.batchDeleted

Plusieurs réactions sont créées.

google.workspace.chat.reaction.v1.batchCreated

Plusieurs réactions sont supprimées.

google.workspace.chat.reaction.v1.batchDeleted

Plusieurs membres sont ajoutés à l'espace auquel l'utilisateur est abonné, ou l'utilisateur abonné a été ajouté à plusieurs espaces.

google.workspace.chat.membership.v1.batchCreated

Plusieurs abonnements sont mis à jour dans l'espace auquel vous êtes abonné ou pour l'utilisateur auquel vous êtes abonné.

google.workspace.chat.membership.v1.batchUpdated

Plusieurs membres sont retirés de l'espace auquel l'utilisateur est abonné, ou l'utilisateur abonné a été retiré de plusieurs espaces.

google.workspace.chat.membership.v1.batchDeleted

L'espace comporte plusieurs mises à jour.

google.workspace.chat.space.v1.batchUpdated

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. Ce payload contient des informations sur la ressource Google Workspace qui a été modifiée. Par exemple, si vous vous êtes abonné aux événements liés aux membres dans un espace, la charge utile de ces événements contient des informations sur la ressource spaces.membership qui a été modifiée.

Données de ressources dans la charge utile de l'événement

Lorsque vous créez un abonnement, vous pouvez indiquer si vous souhaitez que la charge utile inclue des informations sur la ressource ou uniquement son nom. Par exemple, si vous souhaitez recevoir des événements concernant les membres d'un espace de discussion, vous pouvez spécifier les champs d'une ressource d'appartenance 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 de discussion spaces/AAAABBBBBB. Pour chaque événement reçu par l'abonnement, la charge utile s'affiche dans le champ data de l'événement :

Exemple Type d'événement Charge utile JSON

Un utilisateur publie le message "Hello world" dans l'espace.

google.workspace.chat.message.v1.created

Inclut les données de ressources :

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID",
        "sender":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/SPACE_ID/threads/THREAD_ID"
        },
        "space":
        {
            "name": "spaces/SPACE_ID"
        },
        "argumentText": "Hello world"
    }
}
      

Exclut les données de ressources :

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Un utilisateur devient gestionnaire d'un espace.

google.workspace.chat.membership.v1.updated

Inclut les données de ressources :

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID",
        "state": "JOINED",
        "member":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      

Exclut les données de ressources :

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Un utilisateur modifie la description de l'espace en "Équipe commerciale de Cymbal Labs". google.workspace.chat.space.v1.updated

Inclut les données de ressources :

{
    "space":
    {
        "name": "spaces/SPACE_ID",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      

Exclut les données de ressources :

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
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/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      

Exclut les données de ressources :

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Un utilisateur réagit à un message avec l'emoji 😊. google.workspace.chat.reaction.v1.created

Inclut les données de ressources :

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        "user":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      

Exclut les données de ressources :

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
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/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      

Exclut les données de ressources :

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      

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 liés aux membres, l'utilisateur ou l'application Chat doivent être membres à part entière de l'espace. Si un membre a été ajouté, modifié ou supprimé indirectement d'un espace via un groupe Google, l'abonnement ne reçoit pas ces événements liés à l'appartenance. Pour comprendre comment fonctionnent les appartenances aux groupes Google, consultez Ajouter un groupe Google à un espace.