Este guia explica 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 assinaturas. 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 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 Chat precisa ser membro dele.
Pré-requisitos
Node.js
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para seu app do Chat.
- Instale a biblioteca de cliente do Cloud do Node.js.
- Crie credenciais de acesso com base na forma como você quer fazer a autenticação na solicitação da API Google Chat:
- Para autenticar como um usuário do Chat,
crie credenciais de ID do cliente OAuth e salve-as como um arquivo JSON chamado
credentials.jsonno seu diretório local. - Para autenticar como o app Chat,
crie credenciais de
conta de serviço e salve-as como um arquivo JSON chamado
credentials.json.
- Para autenticar como um usuário do Chat,
crie credenciais de ID do cliente OAuth e salve-as como um arquivo JSON chamado
- Escolha um escopo de autorização com base em se você quer autenticar como um usuário ou o app Chat.
Python
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para seu app do Chat.
- Instale a biblioteca de cliente do Cloud Python.
- Crie credenciais de acesso com base na forma como você quer fazer a autenticação na solicitação da API Google Chat:
- Para autenticar como um usuário do Chat,
crie credenciais de ID do cliente OAuth e salve-as como um arquivo JSON chamado
credentials.jsonno seu diretório local. - Para autenticar como o app Chat,
crie credenciais de
conta de serviço e salve-as como um arquivo JSON chamado
credentials.json.
- Para autenticar como um usuário do Chat,
crie credenciais de ID do cliente OAuth e salve-as como um arquivo JSON chamado
- Escolha um escopo de autorização com base em se você quer autenticar como um usuário ou o app Chat.
Listar eventos do espaço (autenticação do usuário)
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 sua 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 da autenticação e autorização.
Chame o método
ListSpaceEvents()transmitindo ofilterdos tipos de eventos a serem listados. É preciso especificar pelo menos um tipo de evento, e também é possível filtrar por data. Para conferir uma lista de tipos de eventos com suporte, consulte o campoeventTypedo recursoSpaceEventna documentação de referência.
O exemplo a seguir lista eventos sobre novas assinaturas e mensagens em um espaço:
Node.js
Para executar esta amostra, substitua SPACE_NAME pelo ID do
name do
espaço.
Você pode conseguir o ID chamando o método
ListSpaces()
ou no URL do espaço.
A API Chat retorna uma lista paginada de eventos do espaço sobre novas associações e mensagens.
Listar eventos do espaço (autenticação do app Chat)
A autenticação de apps exige uma única aprovação do administrador.
Para listar eventos 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 o funcionamento do app. Para saber mais sobre como escolher um escopo, consulte a
Visão geral da autenticação e autorização.
https://www.googleapis.com/auth/chat.app.membershipshttps://www.googleapis.com/auth/chat.app.memberships.readonlyhttps://www.googleapis.com/auth/chat.app.messages.readonlyhttps://www.googleapis.com/auth/chat.app.spaceshttps://www.googleapis.com/auth/chat.app.spaces.readonly
- Chame o método
listno recursospaceEvents. - Transmita o
namedo espaço para listar as mensagens. - Transmita um
filterpara 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
- No diretório de trabalho, crie um arquivo chamado
chat_spaceevents_list_app.py. Inclua o seguinte código 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()No código, substitua o seguinte:
SPACE_NAME: o nome de um espaço, que pode ser obtido pelo métodospaces.listna API Chat ou no URL de um espaço.
No diretório de trabalho, crie e execute a amostra:
python3 chat_spaceevents_list_app.py
A API Chat retorna uma lista paginada de eventos do espaço sobre novas associações e mensagens.