Llamar a un Webhook externo de Slack desde una Azure Function (I)
En este ejemplo de dos partes, vamos a crear un Webhook externo de Slack y vamos a crear una Azure Function que se encargará de enviar un texto a un canal concreto de Slack.
Se trata de una de las demos que hice en el pasado Global Azure Bootcamp 2018 en Madrid en mi sesión «Azure Functions in depth. Road to Serverless«, dónde trataba de exponer algunos sencillos y rápidos ejemplos de como abordar diferentes soluciones con ayuda de Azure Functions.
En esta primera parte, vamos a configurar Slack para lograr nuestro objetivo.
En la segunda parte, vamos a programar nuestra Azure Function que nos ayude a lograr lo que queremos.
¡Manos a la obra!
Lo primero que haremos será partir de un Workspace de Slack.
En mi caso (por ejemplo): https://gabdemo.slack.com/
Lo normal es que tenga el formato: https://<workspace>.slack.com/
La primera acción a realizar será crear un canal dentro del Workspace de Slack.
Pondré por nombre gab2018 por ejemplo y pulsaremos el botón Crear canal.
Nuestro canal quedará creado en Slack.
A continuación, acudiremos a Slack API para crear una App.
https://api.slack.com/apps
Pulsaremos el botón para crear una App (Create an App).
Aparecerá una ventana flotante dentro de la cual deberemos indicar el nombre de la App y el Workspace de Slack en el que queremos trabajar.
Pulsaremos el botón Create App para crear la App de Slack.
A continuación, Slack nos indicará que funcionalidad queremos añadir a nuestra App.
En nuestro caso indicaremos que queremos que sea una Incoming Webhooks.
Una vez hagamos clic en Incoming Webhooks, aparecerá una nueva ventana donde deberemos activar las peticiones hacia Slack.
Para ello, haremos clic en el botón Off para activarlo.
En esa misma página y en la parte inferior, haremos clic en Add New Webhook to Workspace, ya que de momento, aunque tenemos todo preparado, aún no le hemos asignado el Webhook a ningún canal del Workspace de Slack.
Seleccionaremos el canal de nuestro Workspace de Slack y pulsaremos el botón Autorizar.
Una vez realizada esta acción, aparecerá una ventana con la información de nuestra Webhook URL, que podremos copiar para llevar a nuestra Azure Function y que la podamos reutilizar.
Si vamos a nuestro canal de Slack, veremos que éste ya nos está indicando que hay una integración a este canal, y la app de integración se llama MiDemo.
Una vez llegado a este punto, tan sólo tenemos que programar nuestra Azure Function para que desde ella, llamemos a Slack y publiquemos a través de un Webhook entrante de Slack un texto en un canal de Slack.
Esto lo veremos en la próxima entrada.
Happy Coding!