Cómo suscribirse a eventos de Google Chat

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.

Si quieres obtener más información para desarrollar la app de Google Chat, consulta la descripción general de la API de Google Chat.

Recursos de destino de Chat admitidos

La API de Google Workspace Events admite suscripciones para lo siguiente:

  • Espacios, representados como recursos space
  • Usuarios, representados como recursos user de la API de Cloud Identity

Eventos de Chat compatibles

Las suscripciones a Google Workspace te permiten recibir eventos sobre los siguientes tipos de cambios en Chat:

  • Mensajes nuevos o actualizados en el espacio.
  • Reacciones nuevas o quitadas a un mensaje
  • Miembros nuevos, actualizados o quitados del espacio
  • Cambios en el espacio al que te suscribiste, como una descripción o el nombre de un espacio actualizados

Tipos de eventos para crear suscripciones

Cuando creas una suscripción, usa el campo eventTypes[] para especificar qué tipos de eventos deseas recibir. Los tipos de eventos tienen el formato de la especificación de CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Por ejemplo, para recibir eventos sobre usuarios que se unen a un espacio de Chat, debes especificar el espacio como recurso de destino y el tipo de evento como google.workspace.chat.membership.v1.created. Para recibir eventos sobre un usuario determinado que se una a un espacio, especifica el usuario como recurso de destino y el tipo de evento como google.workspace.chat.membership.v1.created. Para obtener más información sobre cómo funcionan los eventos, consulta Estructura de los eventos de Google Workspace.

En la siguiente tabla, se muestran los tipos de eventos que se admiten para suscripciones a espacios y a usuarios:

Tipo de evento Descripción Datos de recursos
Suscripciones a espacios  

google.workspace.chat.message.v1.created

Se publicó un mensaje nuevo.

space.message

google.workspace.chat.message.v1.updated

Se actualiza un mensaje.

space.message

google.workspace.chat.reaction.v1.created

Se crea una reacción.

space.message.reaction

google.workspace.chat.reaction.v1.deleted

Se borra una reacción.

space.message.reaction

google.workspace.chat.membership.v1.created

Se crea un miembro en este espacio.

space.membership

google.workspace.chat.membership.v1.updated

Se actualizó un miembro en este espacio.

space.membership

google.workspace.chat.membership.v1.deleted

Se quitó a un miembro del espacio.

space.membership

google.workspace.chat.space.v1.updated

El espacio se actualiza.

space

google.workspace.chat.space.v1.deleted

Se borrará el espacio.

space

Suscripciones a usuarios  

google.workspace.chat.membership.v1.created

El usuario se convierte en miembro de un espacio.

space.membership

google.workspace.chat.membership.v1.updated

Se actualiza la membresía del usuario a un espacio.

space.membership

google.workspace.chat.membership.v1.deleted

Se quitará al usuario como miembro de un espacio.

space.membership

Tipos de eventos de solo salida

Suscribirse a los tipos de eventos google.workspace.APPLICATION.RESOURCE.VERSION.ACTION configura automáticamente la suscripción para recibir también versiones en lotes del tipo de evento. Por ejemplo, si te suscribes a google.workspace.chat.membership.v1.created, también recibes eventos de google.workspace.chat.membership.v1.batchCreated.

En la siguiente tabla, se muestran los tipos de eventos que se muestran solo para suscripciones a espacios y usuarios:

Tipo de evento Descripción Datos de recursos

google.workspace.chat.message.v1.batchCreated

Se publican varios mensajes al mismo tiempo.

Lista de spaces.messages

google.workspace.chat.message.v1.batchUpdated

Se actualizan varios mensajes al mismo tiempo.

Lista de spaces.messages

google.workspace.chat.reaction.v1.batchCreated

Se crean varias reacciones al mismo tiempo.

Lista de spaces.messages.reactions

google.workspace.chat.reaction.v1.batchDeleted

Se borrarán varias reacciones al mismo tiempo.

Lista de spaces.messages.reactions

google.workspace.chat.membership.v1.batchCreated

  • Si target_resource es un espacio, se crearán varios miembros en el espacio.
  • Si target_resource es un usuario, se convierte en miembro de varios espacios.

Lista de spaces.memberships

google.workspace.chat.membership.v1.batchUpdated

  • Si target_resource es un espacio, se actualizan varios miembros en el espacio.
  • Si target_resource es un usuario, las membresías del usuario a los espacios tienen varias actualizaciones.

Lista de spaces.memberships

google.workspace.chat.membership.v1.batchDeleted

  • Si target_resource es un espacio, se quitan varios miembros del espacio.
  • Si target_resource es un usuario, se quitará su membresía de varios espacios.

Lista de spaces.memberships

google.workspace.chat.space.v1.batchUpdated

El espacio tiene varias actualizaciones.

Lista de spaces

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 esos 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. Por ejemplo, si deseas recibir eventos sobre los miembros de 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 “Hello World”.

google.workspace.chat.message.v1.created

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.

google.workspace.chat.membership.v1.updated

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 datos de recursos
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
Los usuarios reaccionan a un mensaje con el emoji 😊 y el emoji Así. 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 datos de recursos
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}