Os webhooks de entrada permitem o envio de mensagens assíncronas para o Google Chat a partir de aplicativos que não são do Chat. Por exemplo, é possível configurar um aplicativo de monitoramento para notificar a equipe de plantão no Google Chat quando um servidor ficar inativo.
Para enviar, atualizar ou excluir de forma assíncrona uma mensagem em um espaço do Chat com um app Chat, consulte Criar, ler, atualizar e excluir mensagens.
Pré-requisitos
Para executar o exemplo deste guia, você precisa de:
Python
- Python 3.10.7 ou superior
- Acesso à Internet e a um navegador da Web.
- Uma conta do Google Workspace com acesso ao Google Chat.
- Um espaço do Google Chat.
A biblioteca
httplib2
. Se necessário, execute o seguinte comando da interface de linha de comando (CLI, na sigla em inglês) para instalar a biblioteca usando o pip:pip install httplib2
Node.js
- Node.js e npm instalados.
- Acesso à Internet e a um navegador da Web.
- Uma conta do Google Workspace com acesso ao Google Chat.
- Um espaço do Google Chat.
Apps Script
- Acesso à Internet e a um navegador da Web.
- Uma conta do Google Workspace com acesso ao Google Chat.
- Um espaço do Google Chat.
Java
- Java 11 ou mais recente.
- Apache Maven (em inglês)
- Acesso à Internet e a um navegador da Web.
- Uma conta do Google Workspace com acesso ao Google Chat.
- Um espaço do Google Chat.
Criar um webhook
Para criar um webhook, registre-o no espaço do Google Chat em que você quer receber mensagens e escreva um script que envie mensagens.
Etapa 1: registrar o webhook de entrada
- Em um navegador da Web, abra o Google Chat.
- Acesse o espaço a que você quer adicionar um webhook.
- Na parte superior, ao lado do título do espaço, clique na seta para baixo > Apps e integrações.
- Clique em Gerenciar webhooks.
- Se este espaço já tiver outros webhooks, clique em Adicionar outro. Caso contrário, pule esta etapa.
- Em Nome, insira "Quickstart Webhook".
- Em URL do avatar, insira
https://developers.google.com/chat/images/chat-product-icon.png
. - Selecione SALVAR.
- Para copiar o URL completo do webhook, clique em Copiar.
- Clique fora da caixa para fechar a caixa de diálogo "Webhooks de entrada".
Etapa 2: gravar o script do webhook
O script de webhook de exemplo publica uma mensagem no espaço em que o webhook é registrado enviando uma solicitação create message para o URL do webhook. A API Google Chat responde com uma instância de Message
.
Escolha uma linguagem abaixo para instruções específicas sobre como criar o script do webhook:
Python
No diretório de trabalho, crie um arquivo chamado
quickstart.py
.Em
quickstart.py
, copie e cole o seguinte código:Substitua o valor da variável
url
pelo URL do webhook que você copiou na Etapa 1: registrar o webhook de entrada.
Node.js
No diretório de trabalho, crie um arquivo chamado
index.js
.Em
index.js
, copie e cole o seguinte código:Substitua o valor da variável
webhookURL
pelo URL do webhook que você copiou na Etapa 1: registrar o webhook de entrada.
Apps Script
Acesse a página do Apps Script.
Clique em Novo projeto.
Copie e cole o seguinte código:
Substitua o valor da variável
url
pelo URL do webhook que você copiou na Etapa 1: registrar o webhook de entrada.
Java
No diretório de trabalho, crie um arquivo chamado
pom.xml
.Em
pom.xml
, copie e cole o seguinte:No diretório de trabalho, crie a seguinte estrutura de diretórios:
src/main/java
.No diretório
src/main/java
, crie um arquivo chamadoApp.java
.Em
App.java
, copie e cole o seguinte código:Substitua o valor da variável
URL
pelo URL do webhook que você copiou na Etapa 1: registrar o webhook de entrada.
Etapa 3: executar o script do webhook
Execute o exemplo a seguir executando o seguinte comando no diretório de trabalho na CLI:
Python
python3 quickstart.py
Node.js
node index.js
Apps Script
- Clique em Executar.
Java
mvn compile exec:java -Dexec.mainClass=App
Quando você executa o código de amostra, o webhook envia uma mensagem para o espaço em que você o registrou.
Iniciar ou responder a uma conversa
Para iniciar uma conversa ou responder a uma mensagem, adicione o parâmetro threadKey
ao URL do webhook. Cada threadKey
é exclusivo para o app que o define. Se dois apps de chat ou webhooks diferentes definirem o mesmo threadKey
, duas linhas de execução diferentes serão iniciadas.
Iniciar uma conversa
Para postar a primeira mensagem de uma linha de execução com um webhook, anexe os parâmetros threadKey
e messageReplyOption
ao URL do webhook. Defina a threadKey
como uma string arbitrária, mas lembre-se dela. Você precisará especificá-la novamente para postar uma resposta na linha de execução.
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=ARBITRARY_STRING&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
Responder a uma conversa
Para enviar uma mensagem a uma conversa atual, anexe os parâmetros threadKey
e messageReplyOption
ao URL do webhook definido com o valor usado para iniciar a linha. Por exemplo, o envio de uma mensagem ao URL a seguir posta uma resposta na conversa em que threadKey
é MY-THREAD
e messageReplyOption
é REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
:
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=MY-THREAD&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
Limites e considerações
Ao configurar webhooks, observe estes limites e considerações:
Cada webhook funciona apenas no espaço do Chat em que está registrado.
Não é possível publicar webhooks no Google Workspace Marketplace.
Os webhooks não são interativos. Eles não podem responder ou receber mensagens de usuários ou eventos do Google Chat.
Se apenas unidades organizacionais (UOs) no seu domínio tiverem apps de chat ativados, os webhooks de entrada retornarão o seguinte erro:
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
Os webhooks de entrada funcionam em mensagens diretas, mas apenas quando todos os usuários têm apps de chat ativados.
Como o
Gerenciar webhooks está disponível apenas em um navegador da Web, os webhooks precisam ser configurados no app Chat para Web. Não é possível configurar os webhooks no app Chat para dispositivos móveis.