Inscrever-se em eventos do Google Chat

Nesta página, descrevemos os eventos do Google Chat em que um app do Google Chat pode se inscrever usando a API Google Workspace Events.

Para saber mais sobre o desenvolvimento do app do Google Chat, consulte a visão geral da API Google Chat.

Recursos de destino do Chat compatíveis

A API Google Workspace Events é compatível com assinaturas de:

  • Espaços, representados como recursos space
  • Usuários, representados como recursos user da API Cloud Identity

Eventos do Chat compatíveis

Com as assinaturas do Google Workspace, você pode receber eventos sobre os seguintes tipos de mudanças no Chat:

  • Mensagens novas ou atualizadas no espaço.
  • reações novas ou removidas de uma mensagem.
  • participantes novos, atualizados ou removidos no espaço;
  • Mudanças no espaço em que você se inscreveu, como uma atualização do nome ou da descrição do espaço.

Tipos de evento para criar assinaturas

Ao criar uma assinatura, use o campo eventTypes[] para especificar quais tipos de eventos quer receber. Os tipos de evento são formatados de acordo com a especificação do CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Por exemplo, para receber eventos sobre usuários que participam de um espaço do Chat, especifique o espaço como o recurso de destino e o tipo de evento como google.workspace.chat.membership.v1.created. Para receber eventos sobre um determinado usuário que está participando de qualquer espaço, especifique o usuário como o recurso de destino e o tipo de evento como google.workspace.chat.membership.v1.created. Para saber mais sobre como os eventos funcionam, consulte Estrutura dos eventos do Google Workspace.

A tabela abaixo mostra os tipos de evento que podem ser usados em assinaturas de espaços e em assinaturas de usuários:

Tipo de evento Descrição Dados de recursos
Assinaturas nos espaços  

google.workspace.chat.message.v1.created

Uma nova mensagem foi postada.

space.message

google.workspace.chat.message.v1.updated

Uma mensagem é atualizada.

space.message

google.workspace.chat.reaction.v1.created

Uma reação será criada.

space.message.reaction

google.workspace.chat.reaction.v1.deleted

Uma reação foi excluída.

space.message.reaction

google.workspace.chat.membership.v1.created

Um participante foi criado neste espaço.

space.membership

google.workspace.chat.membership.v1.updated

Um participante foi atualizado neste espaço.

space.membership

google.workspace.chat.membership.v1.deleted

Um participante foi removido deste espaço.

space.membership

google.workspace.chat.space.v1.updated

O espaço foi atualizado.

space

google.workspace.chat.space.v1.deleted

O espaço foi excluído.

space

Assinaturas dos usuários  

google.workspace.chat.membership.v1.created

O usuário se torna participante de um espaço.

space.membership

google.workspace.chat.membership.v1.updated

A participação do usuário em um espaço é atualizada.

space.membership

google.workspace.chat.membership.v1.deleted

O usuário é removido de um espaço.

space.membership

Tipos de evento somente de saída

A assinatura de tipos de evento google.workspace.APPLICATION.RESOURCE.VERSION.ACTION configura automaticamente a assinatura para receber versões em lote do tipo de evento. Por exemplo, se você assina google.workspace.chat.membership.v1.created, também recebe eventos de google.workspace.chat.membership.v1.batchCreated.

A tabela abaixo mostra os tipos de evento que são gerados apenas para assinaturas de espaços e usuários:

Tipo de evento Descrição Dados de recursos

google.workspace.chat.message.v1.batchCreated

Várias mensagens são postadas ao mesmo tempo.

Lista de spaces.messages

google.workspace.chat.message.v1.batchUpdated

Várias mensagens são atualizadas ao mesmo tempo.

Lista de spaces.messages

google.workspace.chat.reaction.v1.batchCreated

Várias reações são criadas ao mesmo tempo.

Lista de spaces.messages.reactions

google.workspace.chat.reaction.v1.batchDeleted

Várias reações são excluídas ao mesmo tempo.

Lista de spaces.messages.reactions

google.workspace.chat.membership.v1.batchCreated

  • Se target_resource for um espaço, vários participantes vão ser criados nele.
  • Se target_resource for um usuário: ele vai participar de vários espaços.

Lista de spaces.memberships

google.workspace.chat.membership.v1.batchUpdated

  • Se target_resource for um espaço: vários participantes vão ser atualizados no espaço.
  • Se target_resource for um usuário: as associações aos espaços vão ter várias atualizações.

Lista de spaces.memberships

google.workspace.chat.membership.v1.batchDeleted

  • Se target_resource for um espaço, vários participantes vão ser removidos.
  • Se target_resource for um usuário: ele será removido de vários espaços.

Lista de spaces.memberships

google.workspace.chat.space.v1.batchUpdated

O espaço recebeu várias atualizações.

Lista de spaces

Dados de eventos

Nesta seção, descrevemos dados de eventos e exemplos de payloads para eventos no Chat.

Quando sua assinatura do Google Workspace recebe um evento do Chat, o campo data contém o payload do evento. Esse payload contém informações sobre o recurso do Google Workspace que foi alterado. Por exemplo, se você se inscreveu em eventos de associação em um espaço, o payload desses eventos contém informações sobre o recurso spaces.membership que mudou.

Dados de recursos no payload do evento

Ao criar uma assinatura, você pode especificar se quer que o payload inclua detalhes sobre o recurso ou apenas o nome dele. Por exemplo, se você quiser receber eventos sobre membros em um espaço do Chat, especifique quais campos de um recurso de associação quer receber no payload do evento.

A tabela a seguir mostra exemplos de payloads JSON para uma assinatura do espaço do Chat spaces/AAAABBBBBB. Para cada evento que a assinatura recebe, o payload aparece no campo data do evento:

Exemplo Tipo de evento Payload do JSON

Um usuário posta uma mensagem no espaço que diz "Hello world".

google.workspace.chat.message.v1.created

Inclui dados 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"
    }
}
      
Exclui dados de recursos
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
Um usuário se torna administrador do espaço.

google.workspace.chat.membership.v1.updated

Inclui dados 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"
    }
}
      
Exclui dados de recursos
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321"
    }
}
      
Um usuário atualiza a descrição do espaço para "Equipe de vendas da Cymbal Labs". google.workspace.chat.space.v1.updated
Inclui dados de recursos
{
    "space":
    {
        "name": "spaces/AAAABBBBBB",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      
Exclui dados de recursos
{
    "space":
    {
        "name": "spaces/AAAABBBBBB"
    }
}
      
Dois usuários do Chat foram adicionados ao espaço ao mesmo tempo. google.workspace.chat.membership.v1.batchCreated
Inclui dados 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"
          }
        }
    ]
}
      
Exclui dados de recursos
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
Um usuário reage a uma mensagem com o emoji 😊. google.workspace.chat.reaction.v1.created
Inclui dados de recursos
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
Omite dados de recursos
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
Os usuários reagem a uma mensagem com o emoji 😊 e o emoji 🌺. google.workspace.chat.reaction.v1.batchCreated
Inclui dados 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 dados de recursos
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}