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 as mudanças nos recursos de um espaço.

O recurso SpaceEvent representa uma mudança no espaço de destino, incluindo os recursos filhos do espaço, como mensagens, reações e associações. Para mais informações sobre a lista de tipos de evento 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 momento do pedido. O servidor retorna os eventos que contêm a versão mais recente do recurso afetado. Por exemplo, se você listar eventos sobre novos participantes do espaço, o servidor vai retornar recursos Membership com os detalhes mais recentes dos participantes. 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 de usuário. Para listar eventos de um espaço, o usuário autenticado precisa fazer parte do espaço.

Pré-requisitos

Python

  • Python 3.6 ou superior
  • A ferramenta de gerenciamento de pacotes pip
  • As bibliotecas de cliente mais recentes do Google para Python. Para instalar ou atualizar, execute o seguinte na interface de linha de comando:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Um projeto do Google Cloud com a API Google Chat ativada e configurada. Veja as etapas em Criar um app do Google Chat.
  • Autorização configurada para o app do Chat. A listagem de recursos SpaceEvent aceita os seguintes métodos de autenticação:

Listar eventos do espaço

Para listar os eventos de um espaço do Chat, faça o seguinte:

  • Chame o método list no recurso SpaceEvent.
  • Especifique quais tipos de evento serão listados usando o campo filter. É necessário especificar pelo menos um tipo de evento e também filtrar por data. Para conferir uma lista de tipos de evento compatíveis, consulte o campo eventType.
  • Com a autenticação do usuário, 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 permita o funcionamento do app. Para escolher um escopo, consulte a Visão geral de autenticação e autorização.

No exemplo de código a seguir, você lista eventos sobre novas associações e mensagens em um espaço.

Python

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

    """Lists SpaceEvent resources from the Chat API."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
                'client_secrets.json', SCOPES)
    creds = flow.run_local_server()
    
    # 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 from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. No código, substitua o seguinte:

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

    python3 chat_space_event_list.py
    

A API Chat retorna uma lista de eventos de recursos SpaceEvent sobre novas associações e mensagens.

Personalizar a paginação

Outra opção é transmitir os seguintes parâmetros de consulta para personalizar a paginação:

  • pageSize: o número máximo de recursos SpaceEvent a serem retornados. O serviço pode retornar menos que esse valor. Valores negativos retornam um erro INVALID_ARGUMENT.
  • pageToken: um token de página, recebido de uma chamada anterior de eventos de espaço de lista. Forneça esse token para recuperar a página seguinte. Ao paginar, o valor do filtro precisa corresponder à chamada que forneceu o token da página. Transmitir um valor diferente pode levar a resultados inesperados.