Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6114
Enviar mensajes a Slack usando Python - Planeta Chatbot

¡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:

Configuración final de mi solicitud.

Para ello, dividiremos el tutorial en los siguientes puntos:

  1. Creación de una aplicación Slack
  2. Creación de un canal de Slack y autorización de la aplicación de Slack
  3. 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

Creación de una aplicación preconfigurada.

Seleccionamos un espacio de trabajo (la cuenta de Slack donde queremos crear la aplicación), y lo confirmamos.

La aplicación que acabamos de crear.

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í.

Obtención del Token OAuth de Slack.

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!

Configuración final de mi solicitud.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *