¡Hola a todos! En este post, vamos a ver cómo utilizar la API de Slack en Python. Para ello, crearemos una aplicación en Python que enviará información diaria al canal de Slack que queramos.
Este tutorial fue creado por Gonzalo Fernández y traducido por PlanetaChatbot. Puedes consultar todos los posts de Gonzalo en su canal de Medium, incluyendo cursos gratuitos sobre Amazon Web Services y SnowFlake. Si quieres apoyarle, puedes unirte a Medium con su enlace de referencia.
Este será el comportamiento final del servicio:
Para ello, dividiremos el tutorial en los siguientes puntos:
- Creación de una aplicación Slack
- Creación de un canal de Slack y autorización de la aplicación de Slack
- Integración con el Script de Python utilizando la API de Slack
¡Empecemos con ello!
Tabla de contenidos
CREACIÓN DE UNA APLICACIÓN SLACK
1) Crear la aplicación
Para hacerlo, tenemos diferentes opciones. Podemos ir a la página de la API de Slack y crear una directamente (baja un poco en esta página para ver la opción): https://api.slack.com/tutorials/tracks/getting-a-token
Seleccionamos un espacio de trabajo (la cuenta de Slack donde queremos crear la aplicación), y lo confirmamos.
2) Instalar la aplicación en Slack
Una vez que hemos creado la app desde la API de Slack, podemos acceder a ella desde la siguiente URL: https://api.slack.com/apps.
Una vez que estamos en nuestra aplicación, la instalamos en nuestro espacio de trabajo.
3) Generar Token OAuth
Para conectar la aplicación con cualquier lenguaje de programación, en este caso, Python, necesitaremos el Token OAuth. Slack genera automáticamente estos tokens cuando instalas la app en tu equipo, como hemos hecho en el paso anterior. Así que sólo tendremos que copiarlo más tarde; por ahora, sólo hay que comprobar que el token está ahí.
Una vez hecho esto, hemos terminado con la API de Slack. Pasemos al siguiente paso.
CREACIÓN DE UN CANAL DE SLACK Y AUTORIZACIÓN DE LA APP DE SLACK
Ahora tenemos dos opciones diferentes: crear un nuevo canal o utilizar uno ya existente. Esto depende de tus necesidades. Una vez que tenemos el canal, tenemos que integrar la Slack App aquí.
Sólo tenemos que hacer clic en el canal, ir a la pestaña de Integraciones, y Añadir una App.
INTEGRACIÓN CON EL SCRIPT DE PYTHON USANDO LA API DE SLACK
Como último paso, tendríamos que habilitar nuestro script para que envíe lo que queramos a este canal de Slack. La lógica de la aplicación queda a tu criterio; sólo como ejemplo, he hecho un bot que toma la información del último día de MongoDB y la envía a este canal.
- En el caso de Python, debemos instalar el SDK de Slack. Si necesitas más información (aparte del comando de abajo), puedes acceder a este enlace: https://slack.dev/python-slack-sdk/.
pip install slack_sdk
- Importamos las bibliotecas necesarias en Python.
import os
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
- Para enviar un mensaje, necesitamos la función «chat_postMessage». También necesitamos el Token que obtuvimos en el primer paso y el nombre del canal que creamos en el segundo paso. Puedes encontrar otros comandos en la documentación del SDK de Slack, ¡todo depende de tus necesidades!
client = WebClient(token=os.environ.get("SLACK_BOT_TOKEN"))
client.chat_postMessage(channel="#"+SLACK_CHANNEL, text="Hello world!")
Y con esto, todo debería estar terminado. Yo, por ejemplo, he subido el código a AWS Lambda y he habilitado un trabajo CRON para que este proceso se ejecute una vez al día. ¡Pero puedes hacer cualquier cosa que tengas en mente!