En esta página, se describen los eventos de Google Chat a los que se puede suscribir una app de Google Chat con la API de Google Workspace Events. Después de decidir qué tipos de eventos necesitas, crea una suscripción para comenzar a recibir eventos de Google Chat.
Además de suscribirte a eventos, también puedes consultarlos llamando a la API de Chat. Llamar a la API de Chat te permite recuperar eventos de forma periódica o ponerte al día con los eventos que podrías haberte perdido de una suscripción debido a una interrupción. Para obtener información sobre las formas en que puedes recibir y responder eventos de Chat, consulta Cómo trabajar con eventos de Google Chat en la documentación de Chat.
Eventos de Chat admitidos
Las suscripciones a Google Workspace te permiten recibir eventos sobre los siguientes tipos de cambios en Chat:
- Mensajes nuevos, actualizados o borrados en el espacio
- Reacciones nuevas a un mensaje o reacciones que se quitaron de un mensaje
- Miembros nuevos, actualizados o quitados del espacio
- Cambios en el espacio al que te suscribiste, como un nombre o una descripción actualizados
Recursos que puedes supervisar para detectar eventos
Para recibir eventos, debes especificar un recurso de Chat para supervisar, que se denomina recurso de destino de la suscripción.
La API de Google Workspace Events admite los siguientes recursos de destino para Chat:
Recurso de destino | Formato | Limitaciones |
---|---|---|
Espacio |
en el que SPACE es el ID en el
nombre de recurso del recurso |
El usuario de Chat que autoriza la suscripción debe ser miembro del espacio a través de su cuenta de Google Workspace o de Google. |
Todos los espacios de un usuario |
|
La suscripción solo recibe eventos de los espacios de los que el usuario es miembro a través de su cuenta de Google Workspace o de Google. |
Usuario |
en el que USER es el ID en el
nombre de recurso del recurso |
La suscripción solo recibe eventos sobre el usuario que autorizó la suscripción. Un usuario no puede autorizar una suscripción en nombre de otros usuarios. |
Tipos de eventos para crear suscripciones
Cuando creas una suscripción, usas el campo eventTypes[]
para especificar qué tipos de eventos deseas recibir. Los tipos de eventos se formatean según la especificación de CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION
.
Por ejemplo, para recibir eventos sobre los usuarios que se unen a un espacio de Chat, especifica el espacio como el recurso de destino y el tipo de evento como google.workspace.chat.membership.v1.created
. Para recibir eventos sobre un usuario determinado que se une a cualquier espacio, especifica al usuario como el recurso de destino y el tipo de evento como google.workspace.chat.membership.v1.created
. Para obtener más información sobre el funcionamiento de los eventos, consulta Estructura de los eventos de Google Workspace.
En la siguiente tabla, se muestran los tipos de eventos que se admiten para las suscripciones a espacios y a usuarios. Para obtener información sobre las excepciones sobre lo que activa un evento, consulta Limitaciones.
Tipo de evento | Formato | Datos de recursos | ||
---|---|---|---|---|
Suscripciones a espacios | ||||
Se publica un mensaje. |
|
|
||
Se actualiza un mensaje. |
|
|
||
Se borra un mensaje. |
|
|
||
Se crea una reacción. |
|
|
||
Se borra una reacción. |
|
|
||
Se agrega un miembro al espacio. |
|
|
||
Se actualiza un miembro en el espacio. |
|
|
||
Se quita un miembro del espacio. |
|
|
||
Se actualizará el espacio. |
|
|
||
Se borrará el espacio. |
|
|
||
Suscripciones a usuarios | ||||
El usuario se convierte en miembro de un espacio.
No todos los miembros nuevos activan eventos. Para obtener más información, consulta Limitaciones. |
|
|
||
Se actualiza la membresía del usuario a un espacio. |
|
|
||
Se quita al usuario como miembro directo de un espacio. |
|
|
Tipos de eventos por lotes (solo salida)
Además de recibir los tipos de eventos a los que te suscribes, tu app de Chat también podría recibir eventos por lotes. Un evento por lotes es un evento que representa muchos eventos del mismo tipo que ocurren en un período breve. La carga útil de un evento por lotes contiene una lista de todos los recursos modificados.
Por ejemplo, si un usuario agrega 20 usuarios a un espacio al mismo tiempo, es posible que tu app de Chat reciba un evento por lotes (google.workspace.chat.membership.v1.batchCreated
). La carga útil del evento contiene una lista de todos los recursos Membership
nuevos que se crearon cuando el usuario agregó a los miembros al espacio.
Recibes un evento por lotes para cualquier tipo de evento al que te suscribas, por lo que no necesitas especificar eventos por lotes cuando creas una suscripción. Por ejemplo, si te suscribes a reacciones nuevas (google.workspace.chat.reaction.v1.created
), tu app de Chat se configura automáticamente para recibir eventos de reacción por lotes (google.workspace.chat.reaction.v1.batchCreated
).
En la siguiente tabla, se muestran los posibles eventos por lotes de una suscripción:
Tipo de evento por lotes | Formato |
---|---|
Se publican varios mensajes. |
|
Se actualizan varios mensajes. |
|
Se borran varios mensajes. |
|
Se crean varias reacciones. |
|
Se borran varias reacciones. |
|
Se agregaron varios miembros al espacio al que te suscribiste o el usuario que se suscribió se agregó a varios espacios. |
|
Se actualizan varias membresías en el espacio al que se suscribió el usuario o para el usuario que se suscribió. |
|
Se quitan varios miembros del espacio suscrito o se quitó al usuario suscripto de varios espacios. |
|
El espacio tiene varias actualizaciones. |
|
Datos de eventos
En esta sección, se describen los datos de eventos y las cargas útiles de ejemplo para los eventos en Chat.
Cuando tu suscripción a Google Workspace recibe un evento de Chat, el campo data
contiene la carga útil del evento. Esta carga útil tiene información sobre el recurso de Google Workspace que cambió. Por ejemplo, si te suscribiste a
eventos de membresía en un espacio, la carga útil de estos eventos contiene información
sobre el
recurso spaces.membership
que cambió.
Datos de recursos en la carga útil del evento
Cuando creas una suscripción, puedes especificar si deseas que la carga útil incluya detalles sobre el recurso o solo el nombre del recurso. Por ejemplo, si quieres recibir eventos sobre miembros en un espacio de Chat, puedes especificar qué campos de un recurso de membresía deseas recibir en la carga útil del evento.
En la siguiente tabla, se proporcionan ejemplos de cargas útiles de JSON para una suscripción al espacio de chat spaces/AAAABBBBBB
. Para cada evento que recibe la suscripción, la carga útil aparece en el campo data
del evento:
Ejemplo | Tipo de evento | Carga útil de JSON |
---|---|---|
Un usuario publica un mensaje en el espacio que dice "Hola mundo". |
|
Incluye datos de recursos
{ "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" } } Excluye los datos de recursos
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Un usuario se convierte en administrador del espacio. |
|
Incluye datos de recursos
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MANAGER" } } Excluye los datos de recursos
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Un usuario actualiza la descripción del espacio a "Equipo de ventas de Cymbal Labs". | google.workspace.chat.space.v1.updated |
Incluye datos de recursos
{ "space": { "name": "spaces/AAAABBBBBB", "displayName": "Cymbal Sales", "spaceThreadingState": "THREADED_MESSAGES", "spaceType": "SPACE", "spaceDetails": { "description": "Sales team for Cymbal Labs." }, "spaceHistoryState": "HISTORY_ON" } } Excluye los datos de recursos
{ "space": { "name": "spaces/AAAABBBBBB" } } |
Se agregaron dos usuarios de Chat al espacio al mismo tiempo. | google.workspace.chat.membership.v1.batchCreated |
Incluye datos de recursos
{ "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" } } ] } Excluye los datos de recursos
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Un usuario reacciona a un mensaje con el emoji 😊. | google.workspace.chat.reaction.v1.created |
Incluye datos de recursos
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } } Omite los datos de recursos
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" } } |
Los usuarios reaccionan a un mensaje con los emojis 😊 y 😸. | google.workspace.chat.reaction.v1.batchCreated |
Incluye datos de recursos
{ "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": "😸" } } } ] } Omite los datos de recursos
{ "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" }, "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", } } ] } |
Limitaciones
-
En el caso de las suscripciones a usuarios, los eventos sobre miembros nuevos en mensajes directos o chats en grupo sin nombre (
google.workspace.chat.membership.v1.created
) solo se activan después de que se publica el primer mensaje. - Para recibir eventos de membresía, el usuario debe ser miembro directo del espacio. Si un usuario se agregó, se actualizó o se quitó indirectamente a un espacio a través de un Grupo de Google, la suscripción no recibe esos eventos de membresía. Para comprender cómo funcionan las membresías de Grupos de Google, consulta Cómo agregar un Grupo de Google a un espacio.
Temas relacionados
- Estructura de los eventos de Google Workspace
- Elige los permisos de OAuth
- Crea una suscripción para recibir eventos de Chat