Esta página explica como criar um app do Chat usando Pub/Sub: Esse tipo de arquitetura para um app de chat é útil se a organização tiver um firewall, que pode impedir que o Chat envie mensagens para o app ou se o app usar a API Google Workspace Events. No entanto, essa arquitetura tem as seguintes limitações devido ao fato de que esses apps de chat só podem enviar e receber mensagens assíncronas:
- Não é possível usar caixas de diálogo. nas mensagens. Em vez disso, use uma mensagem de cartão.
- Não é possível atualizar cards individuais com uma resposta síncrona. Em vez disso, atualize
toda a mensagem chamando
patch
.
O diagrama a seguir mostra a arquitetura de um app de chat criado com o Pub/Sub:
No diagrama anterior, um usuário que interage com um app de chat do Pub/Sub tem o seguinte fluxo de informações:
Um usuário envia uma mensagem no Chat para App do Chat, seja em mensagem direta ou em uma Um evento ou espaço do Chat acontece em um espaço do Chat em que o app do Chat tem uma conta ativa assinatura.
O Chat envia a mensagem para um tópico do Pub/Sub.
Um servidor de aplicativos, ou seja, um sistema na nuvem ou no local que contém a lógica do app do Chat, assina o tópico do Pub/Sub para receber a mensagem pelo firewall.
Opcionalmente, o app do Chat pode chamar a função a API Chat para postar mensagens de forma assíncrona ou realizar outras as operações.
Pré-requisitos
Java
- Uma empresa Conta do Google Workspace com acesso a Google Chat.
- Ter um projeto do Google Cloud com o faturamento ativado. Para verificar se o faturamento está ativado em um projeto, consulte Verificar o status de faturamento dos seus projetos. Para criar um projeto e configurar o faturamento, consulte Crie um projeto do Google Cloud.
- Java 11 ou mais recente
- A ferramenta de gerenciamento de pacotes Maven
Python
- Uma conta do Google Workspace para empresas ou empresas com acesso ao Google Chat.
- Ter um projeto do Google Cloud com o faturamento ativado. Para verificar se o faturamento está ativado em um projeto, consulte Verificar o status de faturamento dos seus projetos. Para criar um projeto e configurar o faturamento, consulte Crie um projeto do Google Cloud.
- Python 3.6 ou superior
- A ferramenta de gerenciamento de pacotes pip
Node.js
- Uma empresa Conta do Google Workspace com acesso a Google Chat.
- Ter um projeto do Google Cloud com o faturamento ativado. Para verificar se o faturamento está ativado em um projeto, consulte Verificar o status de faturamento dos seus projetos. Para criar um projeto e configurar o faturamento, consulte Criar um projeto do Google Cloud.
- Node.js 14 ou mais recente
- O npm ferramenta de gerenciamento de pacotes
-
Um projeto Node.js inicializado. Para inicializar um novo projeto, crie e
mude para uma nova pasta e execute o seguinte comando em sua interface de linha de comando:
npm init
Configure o ambiente
Antes de usar as APIs do Google, você precisa ativá-las em um projeto do Google Cloud. É possível ativar uma ou mais APIs em um único projeto do Google Cloud.No console do Google Cloud, ative a API Google Chat e a API Pub/Sub.
Configurar o Pub/Sub
Crie um tópico do Pub/Sub para que a API Chat possa enviar mensagens. Recomendamos que você use um único tema por app do Chat.
Conceda ao Chat permissão para publicar no tópico atribuindo o papel Editor do Pub/Sub à seguinte conta de serviço:
chat-api-push@system.gserviceaccount.com
Criar uma conta de serviço para o app do Chat autorizar com o Pub/Sub e Converse e salve o arquivo da chave privada no diretório de trabalho.
Crie uma assinatura de pull para o tópico.
Atribua o papel de assinante do Pub/Sub na assinatura da conta de serviço criada anteriormente.
Escrever o roteiro
Java
Em uma CLI, forneça as credenciais da conta de serviço:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Em uma CLI, forneça o ID do projeto do Google Cloud:
export PROJECT_ID=PROJECT_ID
Em uma CLI, forneça o ID da assinatura do Pub/Sub que criados anteriormente:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
No diretório de trabalho, crie um arquivo chamado
pom.xml
.No arquivo
pom.xml
, cole o seguinte código:No seu diretório de trabalho, crie a estrutura de diretórios
src/main/java
.No diretório
src/main/java
, crie um arquivo chamadoMain.java
.Em
Main.java
, cole o seguinte código:
Python
Em uma CLI, forneça credenciais da conta de serviço:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Em uma CLI, forneça o ID do projeto do Google Cloud:
export PROJECT_ID=PROJECT_ID
Em uma CLI, forneça o ID da assinatura do Pub/Sub que você criou anteriormente:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
No diretório de trabalho, crie um arquivo chamado
requirements.txt
.No arquivo
requirements.txt
, cole o seguinte código:No diretório de trabalho, crie um arquivo chamado
app.py
.Em
app.py
, cole o seguinte código:
Node.js
Em uma CLI, forneça credenciais da conta de serviço:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
Em uma CLI, forneça o ID do projeto do Google Cloud:
export PROJECT_ID=PROJECT_ID
Em uma CLI, forneça o ID da assinatura do Pub/Sub que você criou anteriormente:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
No diretório de trabalho, crie um arquivo chamado
package.json
.No arquivo
package.json
, cole o seguinte código:No diretório de trabalho, crie um arquivo chamado
index.js
.Em
index.js
, cole o seguinte código:
Publique o app no Chat
No console do Google Cloud, acesse Menu > APIs e Serviços > APIs ativadas e Serviços > API Google Chat > Configuração.
Configure o app do Chat para Pub/Sub:
- Em Nome do app, insira
Quickstart App
. - No URL do avatar, digite
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - Em Descrição, digite
Quickstart app
. - Em Funcionalidade, selecione Receber mensagens 1:1 e Participar de espaços e conversas em grupo.
- Em Configurações de conexão, selecione Cloud Pub/Sub e cole o nome do tópico do Pub/Sub que você criou anteriormente.
- Em Visibilidade, selecione Disponibilizar este app do Google Chat para pessoas e grupos específicos no seu domínio e digite seu endereço de e-mail.
- Em Registros, selecione Registrar erros no Logging.
- Em Nome do app, insira
Clique em Salvar.
O app está pronto para receber e responder a mensagens no Chat.
Executar o script
Em uma CLI, alterne para o diretório de trabalho e execute o script:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
Quando você executa o código, o aplicativo começa a detectar as mensagens publicadas no tópico do Pub/Sub.
Testar o app do Chat
Para testar seu app do Chat, abra um espaço de mensagem direta com do app do Chat e enviar uma mensagem:
Abra o Google Chat usando a conta do Google Workspace que você fornecido quando você se adicionou como trusted tester.
- Clique em Nova conversa.
- No campo Adicionar uma ou mais pessoas, digite o nome do seu app Chat.
Selecione o app Chat nos resultados. Um direto a mensagem será aberta.
- Na nova mensagem direta com o app, digite
Hello
e pressioneenter
.
Para adicionar trusted testers e saber mais sobre como testar recursos interativos, consulte Teste os recursos interativos do Apps do Google Chat
Resolver problemas
Quando um app do Google Chat ou um card retorna um erro, a interface do Chat mostra uma mensagem informando que "Ocorreu um erro". ou "Não foi possível processar sua solicitação". Às vezes, a interface do Chat não exibe nenhuma mensagem de erro, mas o app do Chat ou produz um resultado inesperado; por exemplo, uma mensagem de cartão pode não aparecer.
Embora uma mensagem de erro possa não aparecer na interface do Chat, mensagens de erro descritivas e dados de registro estão disponíveis para ajudar a corrigir erros quando o registro de erros para apps de chat estiver ativado. Para saber como visualizar, depurar e corrigir erros, consulte Resolver e corrigir erros do Google Chat.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelo recursos usados neste tutorial, recomendamos que você exclua os do Google Cloud.
- No console do Google Cloud, acesse a página Gerenciar recursos. Clique em Menu > IAM e administrador > Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo o projeto.
Temas relacionados
Para adicionar mais recursos ao seu app de chat, consulte o seguinte: