Este guia explica como usar o
get()
método no recurso SpaceEvent da API Google Chat para receber detalhes sobre
um evento de um espaço do Chat.
O recurso
SpaceEvent representa uma mudança em um espaço ou nos recursos filhos dele, como mensagens,
reações e associações. Para saber mais sobre os tipos de eventos com suporte, consulte o
eventType campo da SpaceEvent documentação de referência do recurso.
É possível solicitar eventos até 28 dias antes do horário da solicitação. O evento contém a versão mais recente do recurso que mudou. Por exemplo, se você solicitar um evento sobre uma nova mensagem, mas ela for atualizada posteriormente, o servidor vai retornar o recurso Message atualizado no payload do evento.
Para chamar esse método, é necessário usar a autenticação do usuário. Para receber um evento, o usuário autenticado precisa ser membro do espaço em que o evento ocorreu.
Pré-requisitos
Node.js
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto na nuvem 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 o app Chat.
- Instale a biblioteca de cliente do Cloud para Node.js .
- Crie credenciais de acesso com base em como você quer fazer a autenticação na solicitação da API Google Chat:
request:
- Para fazer a autenticação 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 fazer a autenticação como o app Chat,
crie credenciais de conta de serviço e salve-as como um arquivo JSON chamado
credentials.json.
- Para fazer a autenticação 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 fazer a autenticação 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 na nuvem 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 o app Chat.
- Instale a biblioteca de cliente do Cloud para Python.
- Crie credenciais de acesso com base em como você quer fazer a autenticação na solicitação da API Google Chat:
request:
- Para fazer a autenticação 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 fazer a autenticação como o app Chat,
crie credenciais de conta de serviço e salve-as como um arquivo JSON chamado
credentials.json.
- Para fazer a autenticação 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 fazer a autenticação como um usuário ou o app Chat.
Receber detalhes sobre um evento de espaço (autenticação do usuário)
Para receber detalhes sobre um evento de espaço no Google Chat, transmita o seguinte na sua solicitação:
- Especifique um escopo de autorização que ofereça suporte ao tipo de evento na sua solicitação. Como prática recomendada, escolha o escopo mais restritivo que ainda permita que o app funcione.
- Chame o
GetSpaceEvent()método, transmitindo onamedo evento de espaço para receber.
O exemplo a seguir recebe um evento de espaço:
Node.js
Este exemplo de código em Node.js usa a API RPC do Chat.
Para executar este exemplo, substitua o seguinte:
SCOPE_NAME: um escopo de autorização com base no tipo de evento. Por exemplo, se você estiver recebendo um evento de espaço sobre uma nova associação, use o escopochat.memberships.readonly, formatado comohttps://www.googleapis.com/auth/chat.memberships.readonly. É possível receber o tipo de evento doListSpaceEvents()método. Para saber como usar esse método, consulte Listar eventos de um espaço.SPACE_NAME: o ID do espaço'sname. É possível receber o ID chamando oListSpaces()método ou no URL do espaço.SPACE_EVENT_NAME: o ID donamedo evento de espaço. É possível receber o ID doListSpaceEvents()método. Para saber como usar esse método, consulte Listar eventos de um espaço.
A API Chat retorna uma instância de
SpaceEvent
com detalhes sobre o evento.
Receber detalhes sobre um evento de espaço (autenticação do app Chat)
A autenticação do app exige a aprovação única do administrador.
Para receber detalhes sobre um evento de espaço de um espaço com autenticação de app usando 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 que o app funcione. Para saber mais sobre como escolher um escopo, consulte a
Visão geral de 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
getmétodo nospaceEventsrecurso. - Transmita o
namedo espaço para receber detalhes do evento.
Escrever um script que chama a API Chat
Confira como receber detalhes sobre um evento de espaço com autenticação de app e a API REST do Chat:
Python
Este exemplo de código em Python usa a API REST do Chat.
- No diretório de trabalho, crie um arquivo chamado
chat_spaceevents_get_app.py. Inclua o código a seguir em
chat_spaceevents_get_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().get( # The space to get event details 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. name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME', ).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: um nome de espaço, que pode ser recebido do métodospaces.listna API Chat ou do URL de um espaço.SPACE_EVENT_NAME: o ID donamedo evento de espaço. É possível receber o ID doListSpaceEvents()método. Para saber como usar esse método, consulte Listar eventos de um espaço.
No diretório de trabalho, crie e execute o exemplo:
python3 chat_spaceevents_get_app.py
A API Chat retorna uma lista de lista paginada de eventos de espaço sobre novas associações e mensagens.