Cómo crear un bot multi-equipo para Slack
INTRODUCCIÓN A LA CREACIÓN DE BOTS MULTI-EQUIPO EN SLACK
En Devopensource llevamos tiempo trabajando con esta nueva tecnología en auge: los bots de chat.
Aunque en realidad estos ya existían cuando el IRC, hoy en día con el lanzamiento de varias plataformas de chat,
que tienen una API disponible al público, la creación de este tipo de software ha incrementado, hasta el punto que creemos que es un buen tema a tratar porque ha mejorado mucho lo que se puede hacer.
Por ello vamos a ver cómo crear un simple robot que responda a los textos: ‘hola‘ y ‘me llamo
PASO 1. CREANDO UN TEAM EN SLACK
Lo primero que vamos a hacer es crear un team, al que asociar una app que haremos después, y a esta un usuario de tipo bot.
Si ya tienes un team, pasa al siguiente paso.
- Abre este enlace para crear un nuevo team: https://slack.com/create#email
- Introduce tu email y siguiente.
- Introduce el nombre del equipo y siguiente.
- Os hará una previsualización del dominio en slack de vuestro nuevo equipo, si estáis de acuerdo, haced clic en siguiente.
- Ahora introducís vuestros datos básicos: Nombre (Firstname), apellidos (lastname) y nombre de usuario (username) y clic en siguiente.
- Tendréis un resumen de los datos del equipo y su creador (tú) y podrás finalizar la creación en este paso.
- Estamos en el equipo
Ahora que tienes un equipo, vamos a crear la app necesaria para nuestro bot.
PASO 2. CREANDO UNA APP EN SLACK
- Abre este enlace para empezar.
- Escribe el nombre de la App, que no es necesariamente el nombre que tendrá el bot. Por ejemplo: DemoBot.
- Selección del team, en mi caso DevoBlog.
- Escribe una descripción corta, por ejemplo: mi primer robot para slack!
- Ponle icono.
- Añade esta descripción si lo deseas: mantiene una conversación de ejemplo con un usuario.
- Aquí “Link to clear instructions on how to install your Slack app“, pon esta url de momento: http://localhost:3000/login
- En “Redirect URI(s)“, podemos poner esto: http://localhost:3000/oauth
Os quedará algo así:
Damos clic en “Create App” y deberíamos ver el siguiente mensaje “Application Created!“.
Ahora vamos a agregar un usuario de tipo bot, a la app.
- Vamos a este enlace: https://api.slack.com/apps
- Hacemos clic en nuestra App
- Nos cargará una página con un menú a la izquierda, deberá estar escrito un enlace con este texto: ‘Bot Users‘. Haz clic ahí.
- Clic en Add a bot user.
- Revisamos el nombre del bot, en mi caso @demobot, y hacemos clic en Add bot user.
PROGRAMANDO EL BOT
Vamos a usar la librería de howdy.ai llamada Botkit. La encontramos en github.com. También está en npmjs.org, pero usaremos el repositorio github.
Sigue estos pasos:
- Clona el proyecto DemoBot: git clone https://github.com/aberope/DemoBot.git
- Clona el proyecto Botkit dentro de DemoBot: git clone https://github.com/howdyai/botkit.git
- Cambia el clientId y el clientSecret acorde a tu App, en el fichero package.json, en la sección start. Puedes encontrar estos datos de tu app, en https://api.slack.com/apps.
- Instala las dependencias: npm install
- Ejecuta tu robot: npm run slack
Deberás estar viendo una salida de consola como esta:
info: ** Using simple storage. Saving data to ./db/
info: ** Setting up custom handlers for processing Slack messages
info: ** Starting webserver on port 3000
info: ** Serving webhook endpoints for Slash commands and outgoing webhooks at: http://MY_HOST:3000/slack/receive
info: ** Serving login URL: http://MY_HOST:3000/login
info: ** Serving oauth return endpoint: http://MY_HOST:3000/oauth
CONECTANDO LA APP A NUESTRO TEAM
Ahora que nuestro robot está en marcha en nuestro PC, tenemos que agregarlo a un equipo. En este caso será el nuestro. Para hacer esto debemos navegar a la URL que ha puesto en marcha slack_bot.js.
- Clic en http://localhost:3000/login
- Aparece una lista de equipos en los que estamos, elegimos el correcto.
- Nos debería aparecer una confirmación, clic en Authorize.
- Finalmente carga una página en blanco con este texto: Success!
También deberíamos ver en el log de la consola y el bot, que se ha agregado un nuevo equipo, y en 5 segundos conectará:
info: ** API CALL: https://slack.com/api/oauth.access
info: ** API CALL: https://slack.com/api/auth.test
connecting bot to team T1623SDEU
info: ** API CALL: https://slack.com/api/rtm.start
notice: ** BOT ID: demobot …attempting to connect to RTM!
bot tracked for team’s token xoxb-
-
PROBANDO EL BOT
Si conectamos a slack, veremos que el bot está online.
Si no conecta algo has hecho mal, o algo está mal explicado. ¡Envíanos un comentario! 😉
Le hablamos al bot y... ¡Este es el resultado!
¡Espero que hayáis disfrutado y os aproveche!
Hasta la próxima.