Inscrever-se em eventos do Google Chat

Nesta página, descrevemos os eventos do Chat que um app do Chat pode assinar usando a API Google Workspace Events. Depois de decidir quais tipos de eventos você precisa, crie uma assinatura para começar a receber eventos do Chat.

Além de se inscrever em eventos, você também pode consultar eventos chamando a API Google Chat. Ao chamar a API Chat, você pode recuperar eventos periodicamente ou ficar por dentro dos eventos que perdeu de uma assinatura devido a uma interrupção. Para saber como receber e responder a eventos do Chat, consulte Trabalhar com eventos do Chat na documentação do Chat.

Eventos do Chat aceitos

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

  • Mensagens novas, atualizadas ou excluídas no espaço.
  • Reações novas ou removidas de uma mensagem.
  • Participantes novos, atualizados ou removidos do espaço.
  • Mudanças no espaço a que você se inscreveu, como um nome ou uma descrição atualizada.

Recursos que podem ser monitorados para eventos

Para receber eventos, especifique um recurso do Chat para monitorar, que é chamado de recurso de destino da assinatura.

A API Google Workspace Events oferece suporte aos seguintes recursos de destino para o Chat:

Recurso de destino Formato Limitações
Espaço

//chat.googleapis.com/spaces/SPACE

em que SPACE é o ID no nome do recurso do recurso space da API Chat. Você pode extrair o ID do URL do espaço ou usando o método spaces.list().

O usuário ou app do Chat que autoriza a assinatura precisa ser membro do espaço com a conta do Google Workspace ou do Google. Compatível com:
Todos os espaços de um usuário

//chat.googleapis.com/spaces/-

A assinatura só recebe eventos dos espaços em que o usuário é membro pela conta do Google Workspace ou do Google. Compatível apenas com autenticação de usuário.
Usuário

//cloudidentity.googleapis.com/users/USER

em que USER é o ID no nome do recurso do recurso user da API Chat. Para mais detalhes, consulte Identificar e especificar usuários do Google Chat.

A assinatura só recebe eventos sobre o usuário que autorizou a assinatura. Um usuário não pode autorizar uma assinatura em nome de outros usuários. Compatível apenas com autenticação de usuário.

Tipos de eventos para criar assinaturas

Ao criar uma assinatura, use o campo eventTypes[] para especificar quais tipos de eventos você quer receber. Os tipos de eventos 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 entram em 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 usuário entrando em 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 a seguir mostra quais tipos de eventos são compatíveis com assinaturas de espaços e de usuários. Para saber mais sobre exceções de o que aciona um evento, consulte Limitações.

Tipo de evento Formato Dados de recursos
Inscrições em espaços  
Uma mensagem é postada.

google.workspace.chat.message.v1.created

space.message

Uma mensagem é atualizada.

google.workspace.chat.message.v1.updated

space.message

Uma mensagem é excluída.

google.workspace.chat.message.v1.deleted

space.message

Uma reação é criada.

google.workspace.chat.reaction.v1.created

space.message.reaction

Uma reação é excluída.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Um participante é adicionado ao espaço.

google.workspace.chat.membership.v1.created

space.membership

Um participante é atualizado no espaço.

google.workspace.chat.membership.v1.updated

space.membership

Um participante é removido do espaço.

google.workspace.chat.membership.v1.deleted

space.membership

O espaço é atualizado.

google.workspace.chat.space.v1.updated

space

O espaço é excluído.

google.workspace.chat.space.v1.deleted

space

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

Nem todos os novos membros acionam eventos. Para mais detalhes, consulte Limitações

google.workspace.chat.membership.v1.created

space.membership

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

google.workspace.chat.membership.v1.updated

space.membership

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

google.workspace.chat.membership.v1.deleted

space.membership

O estado de leitura do espaço do usuário é atualizado. (Prévia para desenvolvedores do )

google.workspace.chat.spaceReadState.v1.updated

spaceReadState

O estado de leitura da conversa do usuário é atualizado. (Prévia para desenvolvedores do )

google.workspace.chat.threadReadState.v1.updated

threadReadState

Tipos de eventos em lote (somente saída)

Além dos tipos de eventos a que você se inscreveu, seu app de chat também pode receber eventos em lote. Um evento em lote representa muitos eventos do mesmo tipo que ocorrem em um curto período. O payload de um evento em lote contém uma lista de todos os recursos alterados.

Por exemplo, se um usuário adicionar 20 pessoas a um espaço ao mesmo tempo, seu app de chat poderá receber um evento em lote (google.workspace.chat.membership.v1.batchCreated). A carga útil do evento contém uma lista de todos os novos recursos Membership criados quando o usuário adicionou os membros ao espaço.

Você recebe um evento em lote para qualquer tipo de evento a que se inscrever. Portanto, não é necessário especificar eventos em lote ao criar uma assinatura. Por exemplo, se você se inscrever para receber novas reações (google.workspace.chat.reaction.v1.created), seu app de chat será configurado automaticamente para receber eventos de reação em lote (google.workspace.chat.reaction.v1.batchCreated).

A tabela a seguir mostra os possíveis eventos em lote para uma assinatura:

Tipo de evento em lote Formato
Várias mensagens são postadas.

google.workspace.chat.message.v1.batchCreated

Várias mensagens são atualizadas.

google.workspace.chat.message.v1.batchUpdated

Várias mensagens são excluídas.

google.workspace.chat.message.v1.batchDeleted

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

google.workspace.chat.reaction.v1.batchCreated

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

google.workspace.chat.reaction.v1.batchDeleted

Vários participantes são adicionados ao espaço inscrito ou o usuário inscrito foi adicionado a vários espaços.

google.workspace.chat.membership.v1.batchCreated

Várias assinaturas são atualizadas no espaço inscrito ou para o usuário inscrito.

google.workspace.chat.membership.v1.batchUpdated

Vários participantes são removidos do espaço inscrito ou o usuário inscrito foi removido de vários espaços.

google.workspace.chat.membership.v1.batchDeleted

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

google.workspace.chat.space.v1.batchUpdated

Vários estados de leitura do espaço são atualizados para o usuário inscrito. (Prévia para desenvolvedores do )

google.workspace.chat.spaceReadState.v1.batchUpdated

Vários estados de leitura de conversas são atualizados para o usuário inscrito. (Prévia para desenvolvedores do )

google.workspace.chat.threadReadState.v1.batchUpdated

Dados do evento

Esta seção descreve os 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 a carga útil do evento. Esse payload tem informações sobre o recurso do Google Workspace que mudou. Por exemplo, se você se inscreveu em eventos de assinatura 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 participação quer receber no payload do evento.

A tabela a seguir fornece 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 JSON

Um usuário posta uma mensagem no espaço dizendo "Olá, mundo".

google.workspace.chat.message.v1.created

Inclui dados de recursos:

{
    "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"
    }
}
      

Exclui dados de recursos:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Um usuário se torna administrador de um espaço.

google.workspace.chat.membership.v1.updated

Inclui dados de recursos:

{
    "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"
    }
}
      

Exclui dados de recursos:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
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/SPACE_ID",
        "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/SPACE_ID"
    }
}
      
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/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"
          }
        }
    ]
}
      

Exclui dados de recursos:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Um usuário reage a uma mensagem com o emoji 😊. google.workspace.chat.reaction.v1.created

Inclui dados de recursos:

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

Exclui dados de recursos:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Os usuários reagem a uma mensagem com os emojis 😊 e 😸. google.workspace.chat.reaction.v1.batchCreated

Inclui dados de recursos:

{
    "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": "😸"
            }
          }
        }
    ]
}
      

Exclui dados de recursos:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      
Um usuário acessa um espaço não lido, o que atualiza o estado de leitura do espaço. (Prévia para desenvolvedores do ) google.workspace.chat.spaceReadState.v1.updated

Inclui dados de recursos:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

Exclui dados de recursos:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState"
  }
}
      
Um usuário lê uma mensagem em uma conversa, o que atualiza o estado de leitura dela. (Prévia para desenvolvedores do ) google.workspace.chat.threadReadState.v1.updated

Inclui dados de recursos:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

Exclui dados de recursos:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState"
  }
}
      

Limitações

  • Para assinaturas de usuários, eventos sobre novos membros em mensagens diretas ou chats em grupo sem nome (google.workspace.chat.membership.v1.created), só são acionados depois que a primeira mensagem é postada.
  • Para receber eventos de participação, o usuário ou app do Chat precisa ser um participante direto do espaço. Se eles foram adicionados, atualizados ou removidos indiretamente de um espaço por um Grupo do Google, a assinatura não vai receber esses eventos de participação. Para entender como funcionam as associações a grupos do Google, consulte Adicionar um grupo do Google a um espaço.