Nesta página, descrevemos como configurar um webhook para enviar mensagens assíncronas em um espaço do Chat usando gatilhos externos. Por exemplo, é possível configurar um aplicativo de monitoramento para notificar os funcionários de plantão no Chat quando um servidor fica inativo. Para enviar uma mensagem síncrona com um app do Chat, consulte Enviar uma mensagem.
Com esse tipo de design de arquitetura, os usuários não podem interagir com o webhook ou o aplicativo externo conectado porque a comunicação é unidirecional. Os webhooks não são conversacionais. Eles não podem responder nem receber mensagens de usuários ou eventos de interação com o app do Chat. Para responder a mensagens, crie um app do Chat em vez de um webhook.
Embora o webhook não seja tecnicamente um app do Chat (os webhooks conectam aplicativos usando solicitações HTTP padrão), esta página se refere a ele como um app do Chat para simplificação. Cada webhook só funciona no espaço do Chat em que está registrado. Os webhooks de entrada funcionam em mensagens diretas, mas apenas quando todos os usuários têm os apps do Chat ativados. Não é possível publicar webhooks no Google Workspace Marketplace.
O diagrama a seguir mostra a arquitetura de um webhook conectado ao Chat:
No diagrama anterior, um app do Chat tem o seguinte fluxo de informações:
- A lógica do app de chat recebe informações de serviços externos de terceiros, como um sistema de gerenciamento de projetos ou uma ferramenta de criação de tíquetes.
- A lógica do app do Chat é hospedada em um sistema em nuvem ou no local que pode enviar mensagens usando um URL de webhook para um espaço específico do Chat.
- Os usuários podem receber mensagens do app do Chat nesse espaço específico do Chat, mas não conseguem interagir com o app do Chat.
Pré-requisitos
Python
- Uma conta do Google Workspace com acesso ao Chat. Sua organização do Google Workspace precisa permitir que os usuários adicionem e usem webhooks de entrada.
- Python 3.10.7 ou mais recente.
A biblioteca
httplib2
. Se necessário, execute o seguinte comando da interface de linha de comando (CLI) para instalar a biblioteca usandopip
:pip install httplib2
Um espaço do Chat.
Node.js
- Uma conta do Google Workspace com acesso ao Chat. Sua organização do Google Workspace precisa permitir que os usuários adicionem e usem webhooks de entrada.
- Node.js e npm instalados.
- Um espaço do Chat.
Java
- Uma conta do Google Workspace com acesso ao Chat. Sua organização do Google Workspace permite que os usuários adicionem e usem webhooks de entrada.
- Java 11 ou mais recente
- Apache Maven (em inglês)
- Um espaço do Chat.
Apps Script
- Uma conta do Google Workspace com acesso ao Chat. Sua organização do Google Workspace permite que os usuários adicionem e usem webhooks de entrada.
- Um espaço do Chat.
Criar um webhook
Para criar um webhook, registre-o no espaço do Chat em que você quer receber mensagens e escreva um script que envie mensagens.
Registrar o webhook de entrada
- Em um navegador, abra o Chat. Não é possível configurar webhooks no app Chat para dispositivos móveis.
- Acesse o espaço onde você quer adicionar um webhook.
- Ao lado do título do espaço, clique na seta para mostrar mais e selecione Apps e integrações.
Clique em
Adicionar webhooks.No campo Nome, use
Quickstart Webhook
.No campo URL do avatar, digite
https://developers.google.com/chat/images/chat-product-icon.png
.Clique em Salvar.
Para copiar o URL do webhook, clique em
Mais e, em seguida, clique em Copiar link.
Escrever o script do webhook
O script de exemplo de webhook envia uma mensagem ao espaço em que o webhook está registrado enviando uma solicitação POST
ao URL do webhook. A
API Chat responde com uma instância de
Message
.
Selecione uma linguagem para saber como criar um script de webhook:
Python
No diretório de trabalho, crie um arquivo chamado
quickstart.py
.Em
quickstart.py
, cole o seguinte código:Substitua o valor da variável
url
pelo URL do webhook que você copiou quando registrou o webhook.
Node.js
No diretório de trabalho, crie um arquivo chamado
index.js
.Em
index.js
, cole o seguinte código:Substitua o valor da variável
url
pelo URL do webhook que você copiou quando registrou o webhook.
Java
No diretório de trabalho, crie um arquivo chamado
pom.xml
.Em
pom.xml
, copie e cole o seguinte:No seu 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
, cole o seguinte código:Substitua o valor da variável
URL
pelo URL do webhook que você copiou quando registrou o webhook.
Apps Script
Em um navegador, acesse o Apps Script.
Clique em New Project.
Cole o seguinte código:
Substitua o valor da variável
url
pelo URL do webhook que você copiou quando registrou o webhook.
Executar o script do webhook
Em uma CLI, execute o script:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- Clique em Executar.
Quando você executa o código, o webhook envia uma mensagem para o espaço em que você o registrou.
Iniciar ou responder a uma conversa
Especifique
spaces.messages.thread.threadKey
como parte do corpo da solicitação da mensagem. Dependendo de você estar iniciando ou respondendo a uma conversa, use os seguintes valores parathreadKey
:Ao iniciar uma linha de execução, defina
threadKey
como uma string arbitrária, mas anote esse valor para postar uma resposta a essa linha.Se estiver respondendo a uma linha de execução, especifique o
threadKey
que foi definido quando a linha de execução foi iniciada. Por exemplo, para postar uma resposta à conversa em que a mensagem inicial usavaMY-THREAD
, definaMY-THREAD
.
Defina o comportamento da linha de execução se o
threadKey
especificado não for encontrado:Responda a uma conversa ou inicie uma nova. Adicione o parâmetro
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
ao URL do webhook. Transmitir esse parâmetro de URL faz com que o Chat procure uma linha de execução existente usando othreadKey
especificado. Se um for encontrado, a mensagem será postada como uma resposta a essa conversa. Se nenhum for encontrado, a mensagem vai iniciar uma nova linha de execução correspondente a essethreadKey
.Responder a uma conversa ou não fazer nada. Adicione o parâmetro
messageReplyOption=REPLY_MESSAGE_OR_FAIL
ao URL do webhook. Transmitir esse parâmetro de URL faz com que o Chat procure uma linha de execução existente usando othreadKey
especificado. Se um for encontrado, a mensagem será postada como uma resposta a essa conversa. Se nenhum for encontrado, a mensagem não será enviada.
Para saber mais, consulte
messageReplyOption
.
O exemplo de código a seguir inicia ou responde a uma conversa: