Esta página explica como criar um app de chat usando o Pub/Sub. Esse tipo de arquitetura para um app do 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 em 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 o método
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 um app do Chat, seja em uma mensagem direta ou em um espaço do Chat, ou um evento acontece em um espaço do Chat em que o app do Chat tem uma assinatura ativa.
O chat envia a mensagem para um tópico do Pub/Sub.
Um servidor de aplicativos, que é um sistema na nuvem ou local que contém a lógica do app Chat, assina o tópico do Pub/Sub para receber a mensagem pelo firewall.
Opcionalmente, o app de chat pode chamar a API Chat para postar mensagens de forma assíncrona ou realizar outras operações.
Pré-requisitos
Java
- 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 Criar 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 Criar um projeto do Google Cloud.
- Python 3.6 ou mais recente
- A ferramenta de gerenciamento de pacotes pip
Node.js
- 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 Criar um projeto do Google Cloud.
- Node.js 14 ou mais recente
- A ferramenta de gerenciamento de pacotes npm
-
Um projeto Node.js inicializado. Para inicializar um novo projeto, crie e
mude para uma nova pasta. Em seguida, execute o seguinte comando na 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 tópico por app Chat.
Conceda ao Chat a 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
Crie uma conta de serviço para que o app de chat seja autorizado com o Pub/Sub e o Chat e salve o arquivo de chave privada no seu 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 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
pom.xml
.No arquivo
pom.xml
, cole o seguinte código:No 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 > Ativar APIs e serviços > API Google Chat > Configuração.
Configure o app de chat para o 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, insira
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 o app 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, mude 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 Chat
Para testar seu app do Chat, abra um espaço de mensagem direta com o app do Chat e envie uma mensagem:
Abra o Google Chat usando a conta do Google Workspace que você informou ao se adicionar como um testador confiável.
- Clique em Novo chat.
- No campo Adicionar uma ou mais pessoas, digite o nome do seu app Chat.
Selecione o app Chat nos resultados. Uma mensagem direta é aberta.
- Na nova mensagem direta com o app, digite
Hello
e pressioneenter
.
Para adicionar testadores confiáveis e saber mais sobre como testar recursos interativos, consulte Testar recursos interativos para 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 mostra nenhuma mensagem de erro, mas o app ou o card do Chat produz um resultado inesperado. Por exemplo, uma mensagem de card 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 pelos recursos usados neste tutorial, recomendamos que você exclua o projeto do 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 excluir o projeto.
Temas relacionados
Para adicionar mais recursos ao seu app de chat, consulte o seguinte: