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

Neste guia, explicamos como usar o método get no recurso SpaceEvent da API Google Chat para conferir detalhes sobre um evento em um espaço do Google Chat.

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

É possível solicitar eventos até 28 dias antes do pedido. O evento contém a versão mais recente do recurso que foi alterado. Por exemplo, se você solicitar um evento sobre uma nova mensagem, mas ela tiver sido atualizada posteriormente, o servidor retornará o recurso Message atualizado no payload do evento.

Para chamar esse método, use a autenticação de usuário. Para receber um evento, o usuário autenticado precisa fazer parte do espaço em que o evento ocorreu.

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. Para receber um evento do espaço, é preciso ter a autenticação do usuário com um escopo compatível com o tipo de evento. Para escolher um escopo, consulte a Visão geral de autenticação e autorização.

Receber detalhes sobre um evento do espaço

Para conferir detalhes sobre uma SpaceEvent no Google Chat, faça o seguinte:

  • Chame o método get no recurso SpaceEvent.
  • Transmita o name do SpaceEvent para receber. Consiga o nome SpaceEvent do recurso SpaceEvent do Google Chat.
  • Com a autenticação do usuário, especifique um escopo de autorização compatível com o tipo de evento na sua solicitação. Como prática recomendada, escolha o escopo mais restritivo que ainda permita que o app funcione.

Confira como conseguir um SpaceEvent com autenticação de usuário:

Python

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

    """Gets a SpaceEvent resource 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 = ['SCOPE']
    
    # 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()
        .get(
            # The space event to get.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace SPACE_EVENT with a SpaceEvent name.
            # Obtain the spaceEvent name from the SpaceEvent resource of
            # Chat API.
            name='spaces/SPACE/spaceEvents/SPACE_EVENT'
        )
        .execute()
    )
    
    # Prints details about the created spaceEvent.
    print(result)
    
  3. No código, substitua o seguinte:

    • SCOPE: um escopo de autorização com base no tipo de evento. Por exemplo, se você estiver recebendo um evento do espaço sobre uma nova associação, use o escopo chat.memberships.readonly, formatado como https://www.googleapis.com/auth/chat.memberships.readonly. Você pode conferir o tipo de evento no método spaces.spaceEvents.list. Para saber como usar esse método, consulte Listar eventos de um espaço.
    • 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.
    • SPACE_EVENT: o nome do evento de espaço, que pode ser obtido do método spaces.spaceEvents.list.
  4. No diretório de trabalho, crie e execute a amostra:

    python3 chat_space_event_get.py
    

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