Receber detalhes sobre um evento de um espaço do Google Chat

Este guia explica como usar o get() método no recurso SpaceEvent da API Google Chat para receber detalhes sobre um evento de um espaço do Chat.

O recurso SpaceEvent representa uma mudança em um espaço ou nos recursos filhos dele, como mensagens, reações e associações. Para saber mais sobre os tipos de eventos com suporte, consulte o eventType campo da SpaceEvent documentação de referência do recurso.

É possível solicitar eventos até 28 dias antes do horário da solicitação. O evento contém a versão mais recente do recurso que mudou. Por exemplo, se você solicitar um evento sobre uma nova mensagem, mas ela for atualizada posteriormente, o servidor vai retornar o recurso Message atualizado no payload do evento.

Para chamar esse método, é necessário usar a autenticação do usuário. Para receber um evento, o usuário autenticado precisa ser membro do espaço em que o evento ocorreu.

Pré-requisitos

Node.js

  • Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.

Python

  • Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.

Receber detalhes sobre um evento de espaço (autenticação do usuário)

Para receber detalhes sobre um evento de espaço no Google Chat, transmita o seguinte na sua solicitação:

  • Especifique um escopo de autorização que ofereça suporte ao tipo de evento na sua solicitação. Como prática recomendada, escolha o escopo mais restritivo que ainda permita que o app funcione.
  • Chame o GetSpaceEvent() método, transmitindo o name do evento de espaço para receber.

O exemplo a seguir recebe um evento de espaço:

Node.js

Este exemplo de código em Node.js usa a API RPC do Chat.

chat/client-libraries/cloud/get-space-event-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

  // Make the request
  const response = await chatClient.getSpaceEvent(request);

  // Handle the response
  console.log(response);
}

await main();

Para executar este exemplo, substitua o seguinte:

  • SCOPE_NAME: um escopo de autorização com base no tipo de evento. Por exemplo, se você estiver recebendo um evento de espaço sobre uma nova associação, use o escopo chat.memberships.readonly, formatado como https://www.googleapis.com/auth/chat.memberships.readonly. É possível receber o tipo de evento do ListSpaceEvents() método. Para saber como usar esse método, consulte Listar eventos de um espaço.
  • SPACE_NAME: o ID do espaço's name. É possível receber o ID chamando o ListSpaces() método ou no URL do espaço.
  • SPACE_EVENT_NAME: o ID do name do evento de espaço. É possível receber o ID do ListSpaceEvents() método. Para saber como usar esse método, consulte Listar eventos de um espaço.

A API Chat retorna uma instância de SpaceEvent com detalhes sobre o evento.

Receber detalhes sobre um evento de espaço (autenticação do app Chat)

A autenticação do app exige a aprovação única do administrador.

Para receber detalhes sobre um evento de espaço de um espaço com autenticação de app usando a API REST do Chat, transmita o seguinte na sua solicitação:

  • Especifique um ou mais escopos de autorização para oferecer suporte a cada tipo de evento na sua solicitação. Como prática recomendada, escolha o escopo mais restritivo que ainda permita que o app funcione. Para saber mais sobre como escolher um escopo, consulte a Visão geral de autenticação e autorização.
    • https://www.googleapis.com/auth/chat.app.memberships
    • https://www.googleapis.com/auth/chat.app.memberships.readonly
    • https://www.googleapis.com/auth/chat.app.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
    • https://www.googleapis.com/auth/chat.app.spaces.readonly
  • Chame o get método no spaceEvents recurso.
  • Transmita o name do espaço para receber detalhes do evento.

Escrever um script que chama a API Chat

Confira como receber detalhes sobre um evento de espaço com autenticação de app e a API REST do Chat:

Python

Este exemplo de código em Python usa a API REST do Chat.

  1. No diretório de trabalho, crie um arquivo chamado chat_spaceevents_get_app.py.
  2. Inclua o código a seguir em chat_spaceevents_get_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Define your app's authorization scopes.
    # Set authorization scopes based on the
    # event type. For example, if you are getting a space event
    # about a new membership, use the `chat.app.memberships` scope.
    #
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships",
              "https://www.googleapis.com/auth/chat.app.memberships.readonly",
              "https://www.googleapis.com/auth/chat.app.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces",
              "https://www.googleapis.com/auth/chat.app.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then lists space events from a specified space.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().spaceEvents().get(
    
            # The space to get event details from.
            #
            # Replace SPACE_NAME with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_spaceevents_get_app.py

A API Chat retorna uma lista de lista paginada de eventos de espaço sobre novas associações e mensagens.