Inscrever-se em eventos do Google Chat

Esta página descreve os eventos do Google Chat que um app do Google Chat podem assinar usando a API Google Workspace Events. Depois de decidir qual tipos de eventos de que precisa, crie uma para começar a receber eventos do Google Chat.

Além de se inscrever em eventos, também é possível consultar eventos chamando a API Chat. Chamar a API Chat permite recupere eventos periodicamente ou acompanhe as em eventos que você pode ter perdido em uma assinatura devido a uma interrupção do serviço. Para saber sobre as formas de receber e responder a eventos do Chat, consulte Trabalhar com eventos do Google Chat no Documentação do Chat.

Eventos do Chat compatíveis

Com as assinaturas do Google Workspace, você recebe eventos sobre o seguintes tipos de alterações no Chat:

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

Recursos que podem ser monitorados para eventos

Para receber eventos, especifique um recurso do Chat a ser monitorado. chamado de recurso de destino da assinatura.

A API Google Workspace Events é compatível com os 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 na Nome do recurso do recurso space da API Chat. Para encontrar o ID, acesse o URL do espaço ou use o spaces.list().

O usuário do Chat que autorizar a inscrição precisa participar do espaço usando as credenciais do Google Workspace Conta.
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 um membro usando a Conta do Google ou do Google Workspace.
Usuário

//cloudidentity.googleapis.com/users/USER

em que USER é o ID na 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 consegue autorizar uma assinatura no em nome de outros usuários.

Tipos de evento para a criação de assinaturas

Ao criar uma assinatura, você usa o eventTypes[] para especificar os tipos de eventos que você quer receber. Os tipos de evento são formatado de acordo com a especificação CloudEvents, como google.workspace.APPLICATION.RESOURCE.VERSION.ACTION:

Por exemplo, para receber eventos sobre os usuários que participam de um chat você especifica 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 entrar em qualquer espaço, especifique o usuário como o recurso de destino e a tipo de evento como google.workspace.chat.membership.v1.created. Para saber mais sobre como os eventos funcionam, consulte Estrutura do Google Workspace eventos.

A tabela a seguir mostra quais tipos de evento são compatíveis com assinaturas a espaços e assinaturas de usuários. Para saber mais sobre exceções sobre o que aciona um evento, consulte Limitações.

Tipo de evento Formato Dados do recurso
Inscrições em espaços  
Uma mensagem foi postada.

google.workspace.chat.message.v1.created

space.message

Uma mensagem foi atualizada.

google.workspace.chat.message.v1.updated

space.message

Uma mensagem foi excluída.

google.workspace.chat.message.v1.deleted

space.message

Uma reação será criada.

google.workspace.chat.reaction.v1.created

space.message.reaction

Uma reação foi 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 foi 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 foi atualizado.

google.workspace.chat.space.v1.updated

space

O espaço foi 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 participantes acionam eventos. Para detalhes, consulte Limitações

google.workspace.chat.membership.v1.created

space.membership

A associação do usuário a um espaço é atualizada.

google.workspace.chat.membership.v1.updated

space.membership

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

google.workspace.chat.membership.v1.deleted

space.membership

Tipos de eventos em lote (somente saída)

Além de receber os tipos de evento em que você se inscreveu, seu O app do Chat também pode receber eventos em lote. Um evento em lote é um evento que 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 todas as alterações do Google Cloud.

Por exemplo, se um usuário adicionar 20 usuários a um espaço ao mesmo tempo, seu O app do Chat pode receber um evento em lote (google.workspace.chat.membership.v1.batchCreated). O payload do evento contém Uma lista de todos os novos recursos Membership criados quando o usuário adicionou os participantes ao espaço.

Como você recebe um evento em lote para qualquer tipo de evento ao qual se inscreveu, não é preciso especificar eventos em lote ao criar uma assinatura. Para exemplo, se você se inscrever para receber novas reações (google.workspace.chat.reaction.v1.created), seus O app do Chat é configurado automaticamente para receber mensagens em lote eventos de reação (google.workspace.chat.reaction.v1.batchCreated).

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

Tipo de evento em lote Formato
Várias mensagens foram postadas.

google.workspace.chat.message.v1.batchCreated

Várias mensagens foram atualizadas.

google.workspace.chat.message.v1.batchUpdated

Várias mensagens foram 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 associações 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 em que você se inscreveu ou o usuário inscrito foi removido de diversos espaços.

google.workspace.chat.membership.v1.batchDeleted

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

google.workspace.chat.space.v1.batchUpdated

Dados de eventos

Esta seção descreve dados de eventos e exemplos de payloads para eventos em Conversar.

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

Dados de recursos no payload do evento

Ao criar uma assinatura, você pode especificar se quer que o payload incluir detalhes sobre o recurso ou apenas o nome do recurso. Para Por exemplo, se você quiser receber eventos sobre participantes em uma conversa você pode especificar quais campos de um recurso de associação deseja receber no payload do evento.

A tabela a seguir fornece exemplos de payloads JSON para uma assinatura do spaces/AAAABBBBBB do espaço do Chat. Para cada evento que o 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 dizendo "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 os emojis 😊 e 🎃 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",
        }
      }
    ]
}
      

Limitações

  • Nas inscrições de usuários, eventos sobre novos participantes em mensagens diretas ou chats em grupo sem nome (google.workspace.chat.membership.v1.created) é acionada somente após a primeira mensagem ser postada.
  • Para receber eventos de associação, o usuário precisa ser participante direto do espaço. Se um usuário foi adicionado, for atualizada ou removida indiretamente em um espaço usando um grupo do Google, a assinatura não receber esses eventos de associação. Para entender como funcionam as associações a grupos do Google, consulte Adicionar um grupo do Google a um espaço.