Slack es una herramienta práctica y popular que puede mejorar con sus propios comandos, adaptados a su organización.

Slack es una herramienta que permite a los equipos comunicarse y colaborar. Una de sus características clave es el uso de comandos de barra. Estos comandos desencadenan acciones o integraciones específicas dentro de la plataforma.

Si bien Slack le brinda varios comandos de barra inclinada integrados, puede crear comandos personalizados utilizando la API de Slack. A continuación, puede configurar el comando personalizado para realizar una determinada tarea cuando un usuario la active.

¿Por qué crear un comando de barra diagonal personalizado en Slack?

Es posible que los comandos de barra inclinada integrados de Slack no satisfagan las necesidades específicas de su equipo u organización. Al crear comandos de barra personalizados, puede crear una experiencia más personalizada para su equipo. Esto a su vez aumenta el compromiso del equipo.

Configuración de una aplicación de Slack

instagram viewer

Para seguir adelante, debe sentirse cómodo con el uso básico de Slack. Inicie sesión en su cuenta de Slack en el navegador y cree un nuevo espacio de trabajo. Utilizará este espacio de trabajo para probar sus aplicaciones antes de usarlas en el espacio de trabajo de su equipo.

Abra otra pestaña y navegue hasta la Sitio web de la API de Slack.

Clickea en el crear una aplicación botón. En la siguiente página que aparece, elija la opción para crear una aplicación desde cero.

Asigne un nombre a la aplicación y seleccione el espacio de trabajo en el que funcionará la aplicación.

Haga clic en el Crear aplicación botón. Esto lo redirigirá a una página que contiene la información básica sobre su aplicación.

En la sección de características, navegue hasta el OAuth y permisos característica, luego desplácese hacia abajo hasta Ámbitos de token de bot. Agrega un chatear: escribir alcance para su aplicación. Este ámbito permitirá que su aplicación envíe mensajes al espacio de trabajo.

Desplácese hacia arriba hasta el Tokens de OAuth para su espacio de trabajo sección y haga clic en el Instalar en el espacio de trabajo botón.

En la siguiente página que aparece, haga clic en el Permitir botón. Esto instalará la aplicación en su espacio de trabajo.

Creación de un comando de barra inclinada personalizado con la API de Slack

Después de configurar la aplicación Slack, debe crear un comando personalizado para la tarea que desea realizar. Por ejemplo, un comando de barra que devuelve una broma al usuario. Navegar a la Comandos de barra característica. Clickea en el Crear nuevo comando botón.

Rellena el Dominio, URL de solicitud, y Breve descripción del comando que desea crear. La URL de solicitud es el punto final al que Slack envía una solicitud POST cuando un usuario activa el comando. Use una URL localhost como marcador de posición; cambiará esta URL más tarde.

Haga clic en Ahorrar. Cuando guarda, Slack agrega automáticamente un alcance de comandos para su aplicación. Este alcance permite que su aplicación agregue accesos directos y comandos de barra que las personas en su espacio de trabajo pueden usar. Cambiar los ámbitos requerirá que reinstales la aplicación. Clickea en el reinstala tu aplicación botón.

En la página que aparece a continuación, haga clic en Permitir reinstalar la aplicación en su espacio de trabajo.

Configuración del comportamiento del comando Slash

Inicie cualquier IDE de Python. Crear un nuevo entorno virtual. Cree un nuevo archivo de Python y un nuevo archivo .env. En la terminal, ejecute el siguiente comando para instalar las bibliotecas necesarias.

pip install python-dotenv solicita Flask slack-bolt

El python-dotenv biblioteca le permitirá cargar las variables de entorno en el archivo .env. El peticiones biblioteca le permite realizar solicitudes HTTP y Matraz maneja las solicitudes HTTP entrantes y las respuestas de retorno. perno flojo maneja las solicitudes entrantes de Slack.

Abra el archivo .env y cree dos variables de entorno. Nómbralos BOT_TOKEN y FIRMA_SECRETO respectivamente. Vaya al sitio web de la API de Slack. Debajo de tu aplicación Información básica copie el secreto de firma y utilícelo para inicializar la variable BOT_TOKEN. Vaya a la función OAuth y permisos y copie el token de OAuth del usuario del bot. Úselo para inicializar la variable SIGNING_SECRET.

El token de bot es un identificador único que autentica su aplicación con la API de Slack cuando realiza llamadas a la API. El secreto de firma verifica que las solicitudes entrantes a su aplicación provienen de Slack.

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

Importe las bibliotecas y los módulos necesarios.

importar sistema operativo
de rutalib importar Camino
de dotenv importar carga_dotenv
importar peticiones
de matraz importar Frasco, solicitud, jsonify
de slack_bolt importar aplicación
de slack_bolt.adapter.matraz importar SlackRequestHandler

Cree una nueva instancia de una aplicación Flask.

app = Frasco (__nombre__)

Cargue las variables de entorno desde el archivo .env usando el cargar_dotenv() función.

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

Cree una nueva instancia de una aplicación de Slack usando el aplicación clase de la biblioteca slack_bolt.

slack_app = Aplicación(
token=os.environ['BOT_TOKEN'],
signature_secret=os.environ['FIRMA_SECRETO']
)

Cree una función de controlador de ruta que maneje las solicitudes entrantes al /slack/command punto final Cuando el punto final recibe un CORREO request, analiza los datos del cuerpo de la solicitud. A continuación, comprueba si el comando es /joke. Si es así, llama al obtener_broma() función y devuelve una respuesta JSON a Slack con el resultado del comando.

@app.route("/holgura/comando", métodos=["POST"])
definitivamentedominio():
# Analizar los datos del cuerpo de la solicitud
datos = solicitud.formulario

# Llame a la función apropiada según el comando de barra
si datos["dominio"] == "/broma":
mensaje = get_joke()
demás:
mensaje = f"Comando inválido: {datos['dominio']}"

# Devolver respuesta a Slack
devolver jsonify({"texto": mensaje})

Cree una función que envíe una solicitud GET al yocanhazdadbroma API para recuperar un chiste aleatorio en formato JSON. Luego devuelve el chiste como una cadena.

definitivamenteconseguir_broma():
dirección URL = " https://icanhazdadjoke.com/"
encabezados = {"Aceptar": "aplicación/json"}
respuesta = solicitudes.get (url, encabezados = encabezados, tiempo de espera =5)
broma = respuesta.json()["broma"]
devolver broma

Crear una nueva instancia de un SlackRequestHandler objeto que manejará las solicitudes entrantes de Slack.

manejador = SlackRequestHandler (slack_app)

Compruebe si el script se está ejecutando directamente y, si es así, inicie la aplicación Flask en el puerto 5000.

si __nombre__ == "__principal__":
# Inicie la aplicación Flask en el puerto 5000
aplicación.ejecutar (puerto=5000, depurar=Verdadero)

Ejecute el programa para iniciar el servidor que se ejecuta en localhost.

Para que el programa se comunique con Slack, necesita una URL a la que pueda acceder a través de Internet. Descargar y ejecutar ngrok. El El software ngrok le permite crear una URL pública segura que canaliza el tráfico a un servidor web que se ejecuta en su computadora.

Ejecute el siguiente comando para obtener la URL pública:

ngrok http 5000

La siguiente imagen muestra la URL pública en ngrok, resaltada en blanco.

Copie la URL y navegue hasta el sitio web de la API de Slack. Clickea en el Comandos de barra característica. Edite el comando /joke y reemplace el marcador de posición de URL de solicitud con su URL pública. Agregue /slack/events al final de la URL para apuntar a su punto final.

Vaya a su espacio de trabajo, escriba y envíe el comando /joke. Deberías ver una broma en respuesta:

Familiarícese con otras funciones de Slack

Slack tiene muchas características que ofrecer más allá de los comandos Slash. Familiarizarse con estas funciones le permitirá comprender cómo funcionan.

A continuación, puede buscar formas de personalizarlos según los requisitos de su espacio de trabajo. Esto aumentará la productividad de su equipo.