Listar eventos de um espaço do Google Chat

Este guia explica como usar o list() método no recurso SpaceEvent da API Google Chat para listar mudanças nos recursos de um espaço.

O SpaceEvent recurso representa uma mudança no espaço de destino, incluindo recursos filhos do espaço como mensagens, reações e associações. Para mais informações sobre a lista de tipos de eventos e payloads de eventos compatíveis, consulte os eventType e payload campos da documentação de referência do recurso SpaceEvent.

É possível listar eventos até 28 dias antes do horário da solicitação. O servidor retorna eventos que contêm a versão mais recente do recurso afetado. Por exemplo, se você listar eventos sobre novos membros do espaço, o servidor vai retornar recursos Membership que contêm os detalhes de associação mais recentes. Se novos membros foram removidos durante o período solicitado, o payload do evento vai conter um recurso Membership vazio.

Para listar eventos de um espaço, o usuário autenticado ou o app do Chat precisa ser membro do espaço.

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.

Listar eventos de espaço (autenticação do usuário)

Para listar eventos de espaço de um espaço do Chat, transmita o seguinte na sua solicitação:

O exemplo a seguir lista eventos sobre novas associações e mensagens em um espaço:

Node.js

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

// Authorization scopes based on the event types
const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.memberships.readonly',
  'https://www.googleapis.com/auth/chat.messages.readonly',
];

// This sample shows how to list space events 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 here
    parent: 'spaces/SPACE_NAME',
    // A required filter. Filters events about new memberships and messages.
    filter:
      'eventTypes:"google.workspace.chat.membership.v1.created" OR eventTypes:"google.workspace.chat.message.v1.created"',
  };

  // Make the request
  const pageResult = chatClient.listSpaceEventsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

await main();

Para executar esse exemplo, substitua SPACE_NAME pelo ID de o espaço's name. É possível acessar o ID chamando o ListSpaces() método ou no URL do espaço.

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

Listar eventos de espaço (autenticação do app do Chat)

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

Para listar eventos de espaço de um espaço com autenticação de app e 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 seu 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 list método no spaceEvents recurso.
  • Transmita o name do espaço para listar as mensagens.
  • Transmita um filter para consultar tipos de eventos específicos.

Escrever um script que chama a API Chat

Confira como listar eventos de espaço com autenticação de app e a API REST do Chat:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_spaceevents_list_app.py.
  2. Inclua o código a seguir em chat_spaceevents_list_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().list(
    
            # The space to list events 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.
            parent='spaces/SPACE_NAME',
    
            # A required filter. Filters events by event type.
            #
            # Update this filter to match your requirements.
            filter='eventTypes:"google.workspace.chat.message.v1.created"'
    
        ).execute()
    
        # Print Chat API's response in your command line interface.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

    • SPACE_NAME: um nome de espaço, que pode ser obtido no método spaces.list na API Chat ou no URL de um espaço.
  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_spaceevents_list_app.py

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