Cómo crear un chat de bot de Slack con PHP

En este tutorial crearemos un chat bot para Slack, y para ello utilizaremos la documentación oficial de la API de Slack. Con ella, podremos crear cualquier páginas que envíen mensajes a un canal de Slack específico o a cualquier canal Slack. A la página se le llamará con la información sobre el remitente del mensaje, el propio mensaje y otros metadatos útiles. Cuando se lleve a cabo la solicitud a la página, puedes devolver un JSON con el texto de la propiedad en dicha solicitud y el bot enviará una respuesta directamente en el canal en el que se ha producido el mensaje.

Al inicializar los webhooks salientes (ver documentación) para un equipo, tendremos que configurarles. El bot podrá escuchar los mensajes de un canal específico, o de todos los canales. Si el bot escucha las solicitudes de todos los canales, debe proporcionar una palabra de activación obligatoriamente. El mensaje en el canal debe comenzar con la palabra de activación para que tu página/script sea llamada por Slack. También puedes personalizar el bot proporcionándole un nombre y una imagen. Debes introducir la URL a llamar cuando se envíe un mensaje en el canal, que coincida con la, o las, palabras activas, en el caso de haberlas.

Ahora, vamos a crear un archivo que responda a la URL dada en la configuración de los Webhooks salientes.

Crearemos una función simple que devuelva una lista de lo que el chat bot es capaz de hacer. No te preocupemos, podemos devolver Markdown en el texto de la respuesta del bot. Para ello, ingresamos el propio Markdown en el mensaje, proporcionándole otra propiedad llamada mrkdwn.

function help() {
  global $botName;        
  $out = "*$botName: kittens* => Returns a cat gifrn";
  echo json_encode(array("text" => $out, "mrkdwn" => true));
}

Después debemos comprobar si el parámetro text se ha enviado en la solicitud, y si es así, eliminamos todo el comando hasta el primer signo :. Hacemos esto porque esperamos un texto tal que botName: comando.

if (isset($_REQUEST['text'])) {
$text = trim(implode(":", array_slice(explode(":", $_REQUEST['text']), 1)));

Después, si el comando introducido es “help” tendremos que llamar a la función que antes hemos implementado de ayuda, a la cual también hemos llamado help().

if ($text === "help") {
help();

}

Ahora crearemos una función llamada kittens, la cual se invocará con el comando kittens, la cual mostrará muchas imágenes de gatitos.

function kittens() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://thecatapi.com/api/images/get?format=src&type=gif");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
echo json_encode(array("text" => $url));
}

Envíamos una solicitud a la Cat API para obtener una imagen que sea visualizable en Slack.

else if ($text === "kittens") {
kittens();

}

Fuente: phpgang.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP