Listar eventos de um espaço do Google Chat

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

O recurso SpaceEvent representa uma mudança no espaço de destino, incluindo recursos filhos do espaço, como mensagens, reações e membros. Para mais informações sobre a lista de tipos de eventos e payloads de eventos compatíveis, consulte os campos eventType e payload 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 mais recentes da associação. Se novos membros forem removidos durante o período solicitado, o payload do evento conterá um recurso Membership vazio.

Para chamar esse método, use a autenticação do usuário. Para listar eventos em um espaço, o usuário autenticado precisa ser participante do espaço.

Pré-requisitos

Node.js

Listar eventos do espaço

Para listar eventos de um espaço 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 solicitação. Como prática recomendada, escolha o escopo mais restritivo que ainda permite que o app funcione. Para escolher um escopo, consulte a Visão geral de autenticação e autorização.

  • Chame o método ListSpaceEvents(), transmitindo o filter dos tipos de evento a serem listados. É necessário especificar pelo menos um tipo de evento, além de filtrar por data. Para conferir uma lista de tipos de eventos com suporte, consulte a documentação de referência do campo eventType do recurso SpaceEvent.

O exemplo a seguir lista eventos sobre novas assinaturas 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);
  }
}

main().catch(console.error);

Para executar este exemplo, substitua SPACE_NAME pelo ID do name do espaço. Para conseguir o ID, chame o método ListSpaces() ou o URL do espaço.

A API Chat retorna uma lista de listas paginadas de eventos do espaço sobre novos acessos e mensagens.