Neste guia, explicamos como usar o método
get()
no recurso SpaceEvent
da API Google Chat para receber detalhes sobre
um evento de um espaço do Google Chat.
O
SpaceEvent
recurso
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 compatíveis, consulte a
documentação de referência do
campo eventType
do recurso SpaceEvent
.
É possível solicitar eventos até 28 dias antes do momento da solicitação. 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 for atualizada depois, o servidor vai retornar o recurso Message
atualizado no payload do evento.
Para chamar esse método, é necessário usar a autenticação de usuário. Para receber um evento, o usuário autenticado precisa ser membro do espaço em que ele ocorreu.
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.json
no 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.json
no 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.
Receber detalhes sobre um evento do espaço (autenticação do usuário)
Para saber 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 o funcionamento do app.
- Chame o método
GetSpaceEvent()
e transmita oname
do evento do espaço a ser recebido.
O exemplo a seguir recebe um evento de espaço:
Node.js
Este exemplo de código Node.js usa a API RPC Chat.
Para executar esta amostra, 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 assinatura, use o escopochat.memberships.readonly
, formatado comohttps://www.googleapis.com/auth/chat.memberships.readonly
. É possível receber o tipo de evento do métodoListSpaceEvents()
. Para saber como usar esse método, consulte Listar eventos de um espaço.SPACE_NAME
: o ID doname
do espaço. Você pode conseguir o ID chamando o métodoListSpaces()
ou no URL do espaço.SPACE_EVENT_NAME
: o ID doname
do evento do espaço. Você pode receber o ID do métodoListSpaceEvents()
. 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 uma única aprovação do administrador.
Para receber detalhes sobre um evento 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 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.memberships
https://www.googleapis.com/auth/chat.app.messages.readonly
https://www.googleapis.com/auth/chat.app.spaces
- Chame o método
get
no recursospaceEvents
. - Transmita o
name
do espaço para receber os detalhes do evento.
crie uma chave de API
Para chamar um método da API Developer Preview, use uma versão não pública do documento de descoberta da API. Para autenticar a solicitação, transmita uma chave de API.
Para criar a chave de API, abra o projeto do Google Cloud do app e faça o seguinte:
- No console do Google Cloud, acesse Menu > APIs e serviços > Credenciais.
- Clique em Criar credenciais > Chave de API.
- Sua nova chave de API é exibida.
- Clique em Copiar para copiar a chave de API e usar no código do app. A chave de API também pode ser encontrada na seção "Chaves de API" das credenciais do seu projeto.
- Para evitar o uso não autorizado, recomendamos restringir os locais e as APIs em que a chave de API pode ser usada. Para mais detalhes, consulte Adicionar restrições de API.
Escrever um script que chama a API Chat
Confira como acessar detalhes sobre um evento de espaço com autenticação de app e a API REST do Chat:
Python
Este exemplo de código Python usa a API REST do Chat.
- No diretório de trabalho, crie um arquivo chamado
chat_spaceevents_get_app.py
. Inclua o seguinte código 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.readonly` 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.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces"] 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, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY') # 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:
API_KEY
: a chave de API criada para criar o endpoint de serviço da API Chat.SPACE_NAME
: o nome de um espaço, que pode ser obtido pelo métodospaces.list
na API Chat ou no URL de um espaço.SPACE_EVENT_NAME
: o ID doname
do evento do espaço. Você pode receber o ID do métodoListSpaceEvents()
. Para saber como usar esse método, consulte Listar eventos de um espaço.
No diretório de trabalho, crie e execute a amostra:
python3 chat_spaceevents_get_app.py
A API Chat retorna uma lista paginada de eventos do espaço sobre novas associações e mensagens.