Asistente GitBot 🤖

Jusselly Moreno
Asistente GitBot
Published in
5 min readFeb 18, 2019

Introducción:

Este es un tutorial para crear un Bot en Slack con las funciones de Twillio y Autopilot que devuelve como respuesta cuantos días seguidos un usuario de GitHub ha realizado commits y también devuelve su repositorio más activo.

Herramientas a utilizar 🛠:

  • Twilio Autopilot.
  • Funciones de Twilio.
  • GitHub API.
  • Slack.
  • Slack Outgoing WebHook App.
  • Código a implementar.

Observaciones 🔍:

  • Solo funciona con canales públicos.

Parte 1: Twilio — Autopilot

En primer lugar, ¿qué es Twilio Autopilot? 💬

De manera breve, Twilio Autopilot es una plataforma de conversación de AI para crear bots inteligentes, IVR y aplicaciones de Alexa que funcionan.

Vamos a la página principal de Twilio y accedemos a la misma.

Si no tienes una cuenta deberás crear una para poder comenzar nuestro proyecto.

  • Selecciona en Products y luego Autopilot.
  • Crea el proyecto dándole un nombre al mismo .✏️

Vamos a crear las funciones:

  • Ve a la pestaña izquierda y haz clic en Runtime.
  • Dentro de esta pestaña podrás ver como opción Functions, hazle clic.
  • Estando dentro, podrás ver un botón llamado Create function, haz clic en el.
  • Selecciona la plantilla Blank y luego haz clic en Create.
  • Dale un nombre a la función y también al PATH.
  • Ya que tenemos una función creada y necesitamos 2, ahora haz clic en el botón de “+” y sigue los dos pasos anteriores.
  • Guarda la URL de las funciones, ya que las necesitaremos luego.
Twilio Autopilot function

Dentro de nuestras funciones le añadiremos nuestro código, las cuales le darán vida a nuestro GitBot.

Función 1: Hello Slack💡

Copia este código y pégalo en una de las funciones que creaste.

Función que inicia.

Función 2: Answering Slack 🌐

Copia este código y pégalo en una de las funciones que creaste.

  • Debemos añadir nuestras dependencias, en este caso usaremos moment y axios, y para esto vamos a la sub-pestaña que está dentro de Functions llamada Configure y añadimos nuestra dependencias.
Añadiendo dependencias.

Vamos a crear a nuestro asistente

  • Vamos a la pestaña de Autopilot y creamos a nuestro asistente dándole un nombre al mismo.
Creación del asistente.
  • Dale clic al asistente creado.
Asistente creado.
  • Ve a la pestaña de Tasks y crea 2 tasks, el primer task (Hello_Slack) es el que nos servirá para dar la bienvenida en nuestro canal de Slack y el otro(Answering_Slack) es el que usaremos para devolver la respuesta que queremos.
  • Estando en el primer task, haz clic en HTTP CALLBACK URL y reemplaza ese URL por el URL de la primera función que creamos (Hello Slack) y ahora haz lo mismo con el otro task, en este caso sería (Answering Slack), recordando que cada task está relacionado con una función.

Crea un Router en Natural language Router.

  • Debes ir a Natural Language Router y crear un ejemplo y asígnalo al task Hello_Slack.
  • Estando dentro de Natural Language Router con nuestro ejemplo creado, al lado de Train Tasks, podrás ver una pestaña llamada Build Models, crea un modelo dándole un nombre al mismo.
Creación del modelo.

Parte 2: Slack 👓

Slack

En este proyecto estamos usando Slack como canal, así que …
¿Qué es Slack? 🤔
Slack es un centro de colaboración donde usted y su equipo pueden trabajar juntos para hacer las cosas.

Para este proyecto:

  • Crea un canal público en Slack dándole clic a cualquiera de las dos opciones mostradas en la imagen y sigue los pasos.
  • Da clic en el nombre del espacio de trabajo y luego en Customize Slack, esto te enviará a una página web.
  • Ve a la a mano izquierda de la página y dale clic a la pestaña Menú, en el cual encontrarás una pestaña llamada Configure apps.
  • Ve a la esquina superior derecha para buscar la herramienta que necesitamos llamada Outgoing WebHook, dale clic e ingresa.
  • Da clic en Add Configuration y luego dentro, Add Integration.
  • Dentro de la integración añadida, selecciona el canal creado para prueba anteriormente.
  • Ve a Autopilot para obtener <ACCOUNT_SID> y <ASSISTANT_SID> haz clic en el asistente creado, luego dirígete a Properties y allí podrás encontrar ambos.
  • Dale una descripción al asistente, un nombre y una imagen.
  • Ahora, ve al canal en donde añadiste al bot e invócalo, luego deberás enviarle como respuesta el nombre de usuario de GitHub del cual quieres saber cuántos días seguidos lleva haciendo commit.
Bot en acción.

Nota: El nombre para la invocación lo definimos en una de las función de Twilio.

Con ❤ por Jusselly Moreno.

--

--