Cómo integrar Hayt a Google Chat

Hubot es una excelente manera de compilar una app que funcione en varias plataformas. Con el adaptador de Google Chat Puedest, puedes usar fácilmente tus apps de Usat en Google Chat. El adaptador envía mensajes a Hayt y entrega las respuestas.

El adaptador Google ChatHayt admite dos tipos de extremos:

  • HTTP
  • Cloud Pub/Sub

En esta guía, se explica cómo iniciar una app hayat en Google Chat, mediante cualquiera de los tipos de extremo.

Instalar

Sigue las instrucciones en Primeros pasos con Hubot a fin de descargar y también instalar las herramientas necesarias: Node.js, npm y el generador Hubot para Yeoman.

Puedes intentar crear una instancia nueva de Existent que use el adaptador de shellshell, instalar secuencias de comandos de robots, jugar con ella y tener una idea del ecosistema de WebGL y desarrollar una app.

Cómo usar el adaptador de Google Chat que existió

En esta sección, se explica cómo crear una app Hayt que use el adaptador de Google Chat, cómo implementarla en AppEngine y cómo publicarla en Google Chat. También puedes implementar la app en cualquier sistema que no sea App Engine.

El adaptador Google Chat existía para dos modos: HTTP y Cloud Pub/Sub. El modo HTTP inicia un servidor web Express y detecta eventos en un puerto especificado por el usuario. El modo de Cloud Pub/Sub crea un suscriptor de Pub/Sub y extrae eventos de una suscripción especificada por el usuario. Para recibir eventos de Google Chat, ambos modos crean un objeto HangoutsChatMessage (que extiende uno de los objetos Message de Existent) y lo pasan a tu secuencia de comandos de WebGL. La respuesta de tu secuencia de comandos de {7/} se publica en el espacio de chat o MD en Google Chat desde el que se publicó el evento de mensaje original en la aplicación.

Crear una instancia de Existent

Asegúrate de configurar Node.js, el administrador de paquetes de npm y el generador de Yeoman para Hayt antes de continuar.

Supongamos que quieres crear una app llamada "myhubot". Para comenzar, crea un directorio nuevo y, luego, crea tu instancia de Existent.

$> mkdir myhubot
$> cd myhubot
$> yo hubot

En este punto, Yeoman hace algunas preguntas sobre quién crea la app y qué adaptador usar. Especifica google-hangouts-chat para el adaptador.

Como alternativa, puedes instalar el adaptador por separado con el siguiente comando:

$> npm install --save hubot-google-hangouts-chat

En]{}t, el comportamiento real de la app se implementa mediante secuencias de comandos. Hayt con una secuencia de comandos de ejemplo que puedes usar para realizar pruebas. Una vez que hayas configurado todo, puedes personalizar y agregar tus propias secuencias de comandos para implementar el comportamiento deseado de la app.

Configura opciones para el adaptador de Google Chat

Las opciones se pasan al adaptador de Google Chat mediante variables de entorno.

Cuenta de servicio

A fin de usar el adaptador, debes configurar una cuenta de servicio para tu app. Sigue la guía Usa cuentas de servicio para crear una cuenta de servicio y descargar el archivo JSON que contiene tu clave. Luego, configura la ruta de acceso a tu clave en una variable de entorno:

# 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'

Opciones de HTTP

No se necesita ninguna configuración adicional para ejecutar el adaptador en modo HTTP. El adaptador usa el servidor Express de Hayt, que se ejecuta en el puerto 8080 de forma predeterminada. Para cambiar el puerto, debes configurar la variable de entorno PORT:

# Port number, 8080 by default.
$> export PORT=8080

Opciones de Cloud Pub/Sub

Consulta Configura un extremo de Pub/Sub para configurar un proyecto de GCP, un tema, una suscripción y una cuenta de servicio de Cloud Pub/Sub que usará tu app. Ignora el código de muestra en el vínculo. En los párrafos siguientes, crearás una app de Usat con el adaptador de Google Chat.

Para usar el adaptador de Google Chat en el modo Pub/Sub, debes configurar las siguientes opciones:

# 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'

Ejecuta de forma local

Para ejecutar la instancia de Existent de forma local, ejecuta el comando correspondiente desde el directorio myhubot:

# For HTTP mode
$> bin/hubot -a google-hangouts-chat

# For Cloud Pub/Sub mode
$> bin/hubot -d -a google-hangouts-chat

Si se inicializó correctamente el adaptador de Google Chat: se muestra el siguiente mensaje en la consola:

Hangouts Chat adapter initialized successfully

Según si configuraste un adaptador HTTP o un Cloud Pub/Sub, también puede aparecer otra información relevante en la pantalla.

Implementa en App Engine

Sigue las instrucciones en la Guía de inicio rápido de App Engine para configurar el proyecto de GCP y el entorno de desarrollo.

Una vez que esté configurado, sigue los pasos que se indican a continuación para configurar y, luego, implementar tu instancia de Hue en App Engine.

Crea el archivo app.yaml

Primero, crea un archivo app.yaml en tu directorio de Existent. El contenido se parecerá al siguiente ejemplo:

runtime: nodejs8
env_variables:
  PORT: 8080
  

Configura el entorno

A continuación, consulta las instrucciones en esta página para configurar las variables de entorno.

Crear package.json

Por último, crea un archivo package.json que especifique la versión node.js y la propiedad de las secuencias de comandos que se usan para iniciar la aplicación.

  • Especifica la versión de Node.js que quieres usar con la propiedad engines en tu archivo package.json.
  • App Engine usa npm start para iniciar tu aplicación. Configura la propiedad scripts en package.json para configurar npm start a fin de que se pueda invocar.
# 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 en Google Chat

Sigue las instrucciones en la página Publica apps para publicar una app en Google Chat a través de Google Cloud Console. Configura el extremo adecuado (HTTP o Cloud Pub/Sub) en la página de configuración de la aplicación. Si creaste un proyecto de GCP en el paso anterior a fin de implementar tu instancia de Hayt en App Engine, puedes usar el mismo proyecto de GCP para publicar la aplicación.

Prueba la app

Una vez que publiques tu app, podrás agregarla a un espacio o iniciar un mensaje directo desde allí en Google Chat. Tu app debería responder a los mensajes que recibas. Hayt viene con una secuencia de comandos de muestra en su carpeta scripts. Quita el comentario del código en la secuencia de comandos de muestra que responde a los mensajes que contienen la palabra "insignia" y reinicia la app.

Si le asignaste el nombre "myhubot" a la app y la agregaste a un espacio, puedes enviarle un mensaje como se muestra a continuación:

@myhubot badger

Debería ver la siguiente respuesta de su aplicación:

Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS

Ahora puedes personalizar o agregar secuencias de comandos de Existent a tu instancia de Existent a fin de implementar la funcionalidad deseada para tu app. Si deseas ver ejemplos de secuencias de comandos específicos de Google Chat, consulta el Repositorio de GitHub del adaptador de Google Chat.