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 . Cuando digamos ‘hola‘, el bot responderá: ‘hola, ’. Si le decimos: ‘me llamo ’, dirá: ‘Vale , yo soy DemoBot‘. Seguidamente decimos ‘hola‘ de nuevo, y dirá ‘hola ’. Sencillo, ¿no?

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.

  1. Abre este enlace para crear un nuevo team: https://slack.com/create#email
  2. Introduce tu email y siguiente.
  3. Introduce el nombre del equipo y siguiente.
  4. Os hará una previsualización del dominio en slack de vuestro nuevo equipo, si estáis de acuerdo, haced clic en siguiente.
  5. Ahora introducís vuestros datos básicos: Nombre (Firstname), apellidos (lastname) y nombre de usuario (username) y clic en siguiente.
  6. Tendréis un resumen de los datos del equipo y su creador (tú) y podrás finalizar la creación en este paso.
  7. 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

  1. Abre este enlace para empezar.
  2. Escribe el nombre de la App, que no es necesariamente el nombre que tendrá el bot. Por ejemplo: DemoBot.
  3. Selección del team, en mi caso DevoBlog.
  4. Escribe una descripción corta, por ejemplo: mi primer robot para slack!
  5. Ponle icono.
  6. Añade esta descripción si lo deseas: mantiene una conversación de ejemplo con un usuario.
  7. Aquí “Link to clear instructions on how to install your Slack app“, pon esta url de momento: http://localhost:3000/login
  8. 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.

  1. Vamos a este enlace: https://api.slack.com/apps
  2. Hacemos clic en nuestra App
  3. Nos cargará una página con un menú a la izquierda, deberá estar escrito un enlace con este texto: ‘Bot Users‘. Haz clic ahí.
  4. Clic en Add a bot user.
  5. 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:

  1. Clona el proyecto DemoBot: git clone https://github.com/aberope/DemoBot.git
  2. Clona el proyecto Botkit dentro de DemoBot: git clone https://github.com/howdyai/botkit.git
  3. 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.
  4. Instala las dependencias: npm install
  5. 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.

  1. Clic en http://localhost:3000/login
  2. Aparece una lista de equipos en los que estamos, elegimos el correcto.
  3. Nos debería aparecer una confirmación, clic en Authorize.
  4. 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.

Tecnologia
Cómo crear un bot para Facebook Cómo crear un bot de Telegram

Comments