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:- Autenticação do usuário: exige um escopo com suporte aos tipos de eventos solicitados. Para identificar um escopo, consulte Escopos por tipo de evento.
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 recursoSpaceEvent
. - 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 campoeventType
. - 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
- No diretório de trabalho, crie um arquivo chamado
chat_space_event_list.py
. 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)
No código, substitua o seguinte:
SPACE
: um nome de espaço, que pode ser encontrado no métodospaces.list
na API Chat ou no URL de um espaço.
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 recursosSpaceEvent
a serem retornados. O serviço pode retornar menos que esse valor. Valores negativos retornam um erroINVALID_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.