Crea este bot de Slack y dale a tu canal un ambiente más amigable.

Dar la bienvenida a nuevos usuarios a tu canal los hace sentir como en casa, pero hacer un seguimiento de cada usuario que se une puede ser una tarea tediosa. Ahí es donde entra en juego un bot de bienvenida de Slack. El bot envía un mensaje de bienvenida personalizado a cada nuevo usuario del canal. Siempre está en línea, por lo tanto, no habrá mensajes de bienvenida tardíos.

Aprenderá cómo configurar las credenciales de su bot, escuchar eventos en Slack y enviar mensajes a los usuarios.

Creación de un bot de Slack y obtención de su token de API

Crear un cuenta floja o inicie sesión en su cuenta existente. Luego crea un nuevo espacio de trabajo de Slack para probar su bot antes de instalarlo en su espacio de trabajo activo.

Inicie sesión en su nuevo espacio de trabajo. Slack crea automáticamente un canal aleatorio y general para ti.

Observe la sección de la aplicación en la parte inferior izquierda del espacio de trabajo. Aquí es donde aparecerá nuestro bot cuando lo crees. Navegar a la Sitio web de la API de Slack.

instagram viewer

Haga clic en crear una aplicación. Crear la aplicación desde cero en la ventana que aparece.

Asigne un nombre a su aplicación y seleccione el espacio de trabajo en el que desea desarrollarla.

Luego haga clic en el Crear aplicación botón. Al hacer clic, se le redirigirá a una página que contiene la información básica de su aplicación. Tome nota del secreto de firma bajo las credenciales de la aplicación. Su bot usará el secreto de firma para verificar que un evento provino de Slack y no fue manipulado durante la transmisión.

Vaya a la función OAuth y permisos.

En OAuth y permisos, vaya a Ámbitos de token de bot. Aquí es donde agregará los permisos de lo que su bot puede hacer en su espacio de trabajo. Añade el usuarios: leer alcance. Este alcance permitirá que su bot vea a las personas en su espacio de trabajo. Además, agregue el chatear: escribir scope que permitirá a su bot enviar mensajes al espacio de trabajo.

Vuelve a la información básica de tu bot y haz clic en Instalar en el espacio de trabajo.

Haga clic en permitir en la siguiente página que aparece. Ya ha terminado de instalar el bot en su espacio de trabajo. Vaya a la función OAuth y permisos. Tome nota del token de OAuth del usuario del bot que Slack genera después de la instalación. El bot estará visible en la sección de aplicaciones de su espacio de trabajo.

Ahora que ha instalado el bot en su espacio de trabajo, puede escribir el código para controlarlo.

Preparación de su entorno

Necesitas estar familiarizado con el fundamentos de python para seguir estos ejemplos de código.

Crear un nuevo entorno virtual y un .env archivo. Utilizará el archivo .env para almacenar su token y el secreto de firma, que debe mantener en privado. No debe cargar el archivo .env en ninguna plataforma pública.

Ejecute el siguiente comando en una terminal para instalar las bibliotecas necesarias:

pip install slack-sdk pathlib dotenv matraz slackeventsapi

La biblioteca slack-sdk le proporcionará herramientas para crear aplicaciones e integraciones de Slack, incluidos métodos de API, clientes de API web y OAuth. pathlib y dotenv lo ayudarán a cargar las variables de entorno. matraz lo ayudará a manejar las solicitudes y respuestas HTTP. slackeventsapi le proporcionará un detector de eventos que recibe y maneja eventos de Slack.

El código fuente completo está disponible en un repositorio GitHub.

Importación de las bibliotecas requeridas

Cree un nuevo archivo de Python y comience importando las bibliotecas que instaló previamente, para que pueda usar su funcionalidad en su código.

importar slack_sdk como flojo
importar sistema operativo
de rutalib importar Camino
de dotenv importar carga_dotenv
de matraz importar Matraz
de slackeventsapi importar SlackEventAdapter

Módulo os de Python viene con el idioma, por lo que no necesita instalarlo. SlackEventAdapter es una clase del módulo slackeventsapi que maneja eventos de la API de Slack.

Configuración del bot de Slack

Cree dos variables en el archivo .env. Asigne un nombre SLACK_BOT_TOKEN y asígnele el token OAuth de usuario de bot. Nombre el otro SLACK_SIGNING_SECRET y asígnele el secreto de firma. Vuelva al archivo de Python y cree un objeto Flask. Luego cargue las variables de entorno desde el archivo .env usando la función load_dotenv del módulo dotenv.

app = Frasco (__nombre__)
ruta_env = Ruta('.') / '.env'
load_dotenv (dotenv_path=env_path)

Cree una instancia de slack_event_adapter. Manejará eventos de la API de Slack, utilizando la variable de entorno SLACK_SIGNING_SECRET para autenticar las solicitudes.

slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/holgura/eventos', aplicación)

/slack/events es el punto final que utilizará la API de Slack para enviar eventos.

Cree una instancia de WebClient que enviará mensajes a la API de Slack. Realice una llamada a la API para recuperar el ID del bot.

cliente = holgura. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = cliente.api_call("auth.test")['id_usuario']

Configura el mensaje que enviarás a los nuevos usuarios que se unan a un canal. Inicialice un conjunto vacío que realizará un seguimiento de los usuarios bienvenidos.

SALUDO_MENSAJE = "Hola {user_name}, bienvenido a {channel_name} " \
"¡canal! Estamos emocionados de tenerte aquí".
usuarios_bienvenidos = establecer()

Puedes personalizar el saludo a tu gusto.

Creación de una función para manejar el evento "Canal unido a un miembro"

Configure un detector de eventos. Escuchará el evento member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Defina una función a la que llamará cuando un usuario se una a un canal. Utilice la función para extraer el ID de usuario y el ID de canal de los datos del evento. Verifica si el usuario es nuevo en el canal. De lo contrario, obtenga la información del usuario y del canal mediante la clase WebClient. Crea un mensaje de saludo personalizado. Envía el saludo al canal.

definitivamentehandle_member_joined_channel(datos_de_evento):
id_usuario = datos_evento['evento']['usuario']
channel_id = evento_datos['evento']['canal']

# Solo enviar un mensaje de bienvenida si el usuario es nuevo
si id_usuario noen usuarios_bienvenidos:
usuarios_bienvenidos.añadir (id_usuario)

info_usuario = cliente.info_usuarios (usuario=id_usuario)
nombre_usuario = info_usuario['usuario']['nombre']

channel_info = client.conversations_info (channel=channel_id)
nombre_del_canal = info_del_canal['canal']['nombre']

saludo = SALUDO_MENSAJE.formato (nombre_usuario=nombre_usuario,
nombre_canal=nombre_canal)

cliente.chat_postMessage (canal=id_canal, texto=saludo)

event_data contiene toda la información sobre el evento en el que un usuario se unió a un canal.

Inicie la aplicación Flask y ejecute el script. Si se ejecuta como programa principal (no importado como módulo), ejecútelo en modo de depuración y escuche en el puerto 5000.

si __nombre__ == "__principal__":
aplicación.ejecutar (depurar=Verdadero, puerto=5000)

El modo de depuración recarga automáticamente la aplicación cuando realiza cambios en el código. No utilice el modo de depuración en un entorno de producción, puede exponer información confidencial y hacer que su aplicación sea vulnerable a los ataques. Ejecute su aplicación. Se ejecutará como un servidor local en el puerto 5000.

Conectando la lógica con tu bot

Una vez creada la lógica, ahora debe conectarse al bot en su espacio de trabajo. Esto le permitirá usar esta lógica para realizar operaciones en su espacio de trabajo. Comience descargando y ejecutando Ngrok. Ngrok lo ayudará a exponer su servidor web local a Internet.

Después de ejecutarlo, use el siguiente comando para asignar la dirección de su servidor local a la de Ngrok.

ngrok http 500

Copie la dirección de Ngrok que se asigna a su host local.

Vaya al sitio web de la API de Slack. Bajo la Suscripciones a eventos característica, habilitar eventos. Bajo URL de solicitud ingrese la dirección de Ngrok seguida de /slack/events. Esto apuntará a su punto final.

Luego suscríbase al evento member_joined_channel. Esto notificará a su bot cada vez que un usuario se una a un canal. Haga clic en Guardar cambios. Slack agregará automáticamente los alcances que necesita para suscribirse a este evento. Cada vez que cambie un alcance, deberá volver a instalar su aplicación en el espacio de trabajo.

Haga clic en reinstalar su aplicación.

Probar su bot

Ve a tu espacio de trabajo. Ve al canal en el que quieras usar el bot. Envía un mensaje directo al bot. Por ejemplo, @bot de bienvenida. Aparecerá un mensaje para agregar el bot al canal. Haga clic en agregar.

Ahora, cada vez que un nuevo usuario se una al canal, el bot enviará un mensaje de bienvenida.

La imagen de arriba muestra el bot dando la bienvenida a un nuevo usuario al canal.

Cómo aprovechar al máximo su espacio de trabajo de Slack

Los bots de Slack no son la única forma de ampliar la funcionalidad de la plataforma de mensajería de Slack. El otro método es integrar herramientas de terceros con Slack. Proporcionan funcionalidad adicional dentro de la plataforma.

Familiarícese con estas integraciones, ya que aumentarán su productividad en Slack.