O Hubot é uma ótima maneira de criar um app que funcione em várias plataformas. O adaptador Hubot do Google Chat facilita o uso dos apps Hubot no Google Chat. O adaptador alimenta as mensagens no Hubot e exibe as respostas.
O adaptador Hubot do Google Chat é compatível com dois tipos de endpoints:
- HTTP
- Cloud Pub/Sub
Neste guia, explicamos como iniciar um app Hubot no Google Chat usando qualquer um dos tipos de endpoint.
Instalar
Siga as instruções em Primeiros passos com o Hubot para fazer o download e instalar as ferramentas necessárias: Node.js, npm e o gerador do Hubot para Yeoman.
Você pode tentar criar uma nova instância do Hubot que use o adaptador de shell integrado, instalar scripts Hubot, jogar com ele e ter uma ideia do ecossistema do Hubot e desenvolver um app Hubot.
Como usar o adaptador do Hubot no Google Chat
Esta seção mostra como criar um app Hubot que usa o adaptador do Google Chat, implantá-lo no AppEngine e publicá-lo no Google Chat. Também é possível implantar o aplicativo em qualquer sistema de sua escolha, além do AppEngine.
O adaptador Hubot do Google Chat é compatível com dois modos: HTTP e Cloud Pub/Sub. O modo HTTP ativa um servidor da Web Express e detecta eventos em uma porta especificada pelo usuário. O modo Cloud Pub/Sub cria um assinante do Pub/Sub e extrai eventos de uma assinatura especificada pelo usuário. Ao receber eventos do Google Chat, os dois modos criam um objeto HangoutsChatMessage, que estende um dos objetos Message do Hubot, e o transmitem para o script do Hubot. A resposta do script do Hubot é postada no espaço de chat ou na mensagem direta no Google Chat em que o evento de mensagem original foi publicado no app.
Criar uma instância do Hubot
Configure o Node.js, o gerenciador de pacotes npm e o gerador Yeoman para o Hubot antes de continuar.
Suponha que você queira criar um app chamado "myhubot". Comece criando um novo diretório e, em seguida, crie sua instância do Hubot.
$> mkdir myhubot
$> cd myhubot
$> yo hubot
Neste ponto, o Yeoman faz algumas perguntas sobre quem está criando o app e
qual adaptador usar. Especifique google-hangouts-chat
para o adaptador.
Como alternativa, é possível instalar o adaptador separadamente usando o seguinte comando:
$> npm install --save hubot-google-hangouts-chat
No Hubot, o comportamento real do app é implementado usando scripts. O Hubot vem com um script de amostra que pode ser usado para testes. Depois de tudo configurado, é possível personalizar e adicionar seus próprios scripts para implementar o comportamento desejado do app.
Configurar opções para o adaptador do Google Chat
As opções são transmitidas para o adaptador do Google Chat usando variáveis de ambiente.
Conta de serviço
Para usar o adaptador, é necessário configurar uma conta de serviço para seu app. Siga o guia Como usar contas de serviço para criar uma conta de serviço e fazer o download do arquivo JSON que contém a chave. Em seguida, defina o caminho para sua chave em uma variável de ambiente:
# Point to the private key json file of the service account you created. $> export GOOGLE_APPLICATION_CREDENTIALS='Path to the service account key json file'
Opções de HTTP
Nenhuma configuração adicional é necessária para executar o adaptador no modo HTTP. O
adaptador usa o servidor expresso do Hubot, que é executado na porta 8080
por padrão. Para
mudar a porta, você precisa definir a variável de ambiente PORT
:
# Port number, 8080 by default. $> export PORT=8080
Opções do Cloud Pub/Sub
Consulte Configurar um endpoint do Pub/Sub para configurar um projeto do GCP, tópico do Cloud Pub/Sub, assinatura e conta de serviço a serem usados pelo app. Ignore o código de exemplo no link. Nos parágrafos abaixo, você criará um app Hubot com o adaptador do Google Chat.
Para usar o adaptador do Google Chat no modo Pub/Sub, você precisa definir as seguintes opções:
# To toggle the adapter to Pub/Sub mode. $> export IS_PUBSUB=true # Set the IDs of the project and subscription you created. $> export PUBSUB_PROJECT_ID='GCP Project ID' $> export PUBSUB_SUBSCRIPTION_ID='GCP Cloud Pub/Sub Subscription ID'
Executar no local
Para executar a instância do Hubot localmente, execute o comando correspondente no diretório
myhubot
:
# For HTTP mode
$> bin/hubot -a google-hangouts-chat
# For Cloud Pub/Sub mode
$> bin/hubot -d -a google-hangouts-chat
A mensagem a seguir aparecerá no console se o adaptador do Hubot do Google Chat for inicializado:
Hangouts Chat adapter initialized successfully
Dependendo de você ter configurado um adaptador HTTP ou um adaptador do Cloud Pub/Sub, outras informações relevantes também podem aparecer na tela.
Implantar no App Engine
Siga as instruções do Guia de início rápido do AppEngine para configurar o projeto do GCP e o ambiente de desenvolvimento.
Após a configuração, siga as etapas abaixo para configurar e implantar sua instância do Hubot no AppEngine.
Criar o app.yaml
Primeiro, crie um arquivo app.yaml no seu diretório do Hubot. O conteúdo será semelhante ao exemplo a seguir:
runtime: nodejs8 env_variables: PORT: 8080
Configurar ambiente
Em seguida, verifique as instruções nesta página para configurar variáveis de ambiente.
Criar package.json
Por fim, crie um arquivo package.json
que especifique a versão do node.js e a propriedade de scripts usada para iniciar o aplicativo.
- Especifique a versão do Node.js que você quer usar com a propriedade engines no arquivo package.json.
- O AppEngine usa
npm start
para iniciar seu aplicativo. Configure a propriedade scripts no seu package.json para configurar o npm start para invocar o Hubot.
# Sample snippet of package.json file "dependencies" : { "hubot": "^3.1.1", "hubot-google-hangouts-chat": "^3", # more deps... } "scripts": { "start": "bin/hubot -a google-hangouts-chat" }, "engines": { "node": ">=8" } # Once you've set up everything, deploy the app in AppEngine $> gcloud app deploy
Publicar no Google Chat
Siga as instruções na página Publicar apps para publicar um app no Google Chat usando o Console do Google Cloud. Configure o endpoint apropriado (HTTP ou Cloud Pub/Sub) na página de configuração do app. Se você criou um projeto do GCP na etapa anterior para implantar a instância do Hubot no AppEngine, é possível usar o mesmo projeto do GCP para publicar o app.
Testar o app
Depois de publicar seu app, é possível adicioná-lo a um espaço ou iniciar uma mensagem direta
com ele no Google Chat. Seu app deve responder às mensagens enviadas. O Hubot vem com um script de exemplo na pasta scripts
. Remova a marca de comentário do código no
script de amostra que responde às mensagens com a palavra "badger" e
reinicie o app.
Se você nomeou seu app como "myhubot" e o adicionou a um espaço, é possível enviar uma mensagem, conforme mostrado abaixo:
@myhubot badger
Você verá a seguinte resposta do seu app:
Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS
Agora você pode personalizar ou adicionar scripts Hubot à instância do Hubot para implementar a funcionalidade desejada para seu app. Para ver exemplos de scripts específicos do Google Chat, consulte o Repositório GitHub do adaptador do Google Chat.