ColombiaPython / slack-bot

:robot: :snake: Bot asistente para Slack

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Slack Bot

MIT License Python Status PRs Welcome GitHub issues Twitter Jopmi

Este es el repositorio de un Bot que obtiene información de un equipo en Slack y permite realizar funciones de administración para facilitar el manejo del grupo.

🔀 Flujo de trabajo

Hay 2 ramas de git, develop y production.

⤴️ Develop

Es la rama por defecto. Se hace Pull Request desde otra rama referente al issue o cambio que se quiera agregar, e.g. issue-99 o add-function.

⤴️ Production

Después de que se han ejecutado las pruebas de calidad (QA), los cambios realizados en la rama develop se unen con la rama production.

🛠 Desarrollo local

✅ (Opcional) Entorno Virtual

Instalación

  • Instalar virtualenv

  • ⚠️️ Requiere previa instalación de Python ⚠️

Crear entorno virtual

$ virtualenv <nombre_entorno>

Activar entorno virtual

Windows

$ <nombre_entorno>\Scripts\activate

Linux

$ source <nombre_entorno>/bin/activate

✅ Instala Dependencias

Usando pip:

$ pip install -r requirements.txt

Usando conda:

$ conda install --yes --file requirements.txt

✅ Crear y Configurar Bot

🔧 Crear Slack app

Ingresar a https://api.slack.com/apps/ y crear aplicación.

Crear App

🤖 Agregar usuario Bot a Slack app

Crear Bot

🔩 Instalar App en grupo de Slack

Visitar la página de instalación de la App creada y seleccionar Install App to Team.

Instalación App

Autorizar la instalación.

Autorizar App

⚙ Crear archivo de configuración

Renombrar el archivo /src/config.json.example como /src/config.json

⚙ Guardar credenciales

Una vez se haya autorizado la aplicación, se mostrará la sección de Tokens de Autorización.

Autorizar Token

Copiar de Bot User OAuth Access Token y agregarlo al atributo token en config.json

"config": {
    "name": "...",
    "token": "xxxXXxxXXxXXxXXXXxxxX.xXxxxXxxxx",
    ...
  },
  ...

En la página Basic Information de la App:

Singin Token

Agregar información Signing Secret al archivo config.json.

"config": {
    "name": "...",
    "token": "xxxXXxxXXxXXxXXXXxxxX.xXxxxXxxxx",
    "signin_secret": "xxxxxxxxXxxXxxXxXXXxxXxxx",
    ...
  },
  ...

🚀 Despliegue

✔️ Desarrollo

Ejecutar Bot

$ cd src/
$ python bot.py

🚧 Configuración Tunel

Al momento de Slack contactar el servidor local, se necesitará ejecutar un tunel. Se recomienda ngrok o localtunnel.

ngrok

💡 Slack necesita que las peticiones de eventos se hagan sobre SSL, entonces necesitamos usar HTTPS URL, para esto nos apoyamos en las siguientes opciones.

Ngrok

Instrucciones de instalación y configuración de ngrok

Ejecutar ngrok y copiar HTTPS URL

$ ngrok http 3000
ngrok by @inconshreveable (Ctrl+C to quit)

Session status                      online
Version                             2.1.18
Region                  United States (us)
Web Interface        http://127.0.0.1:4040

Forwarding http://h7465j.ngrok.io -> localhost:9292
Forwarding https://h7465j.ngrok.io -> localhost:9292

serveo.net (Opción recomendada)

$ ssh -R <subdominio>:80:localhost:3000 serveo.net 

Suscribir la app a Eventos

Agregar la URL de peticiones (tunnel URL + /slack/events). Guardar y activar Enable Events.

PENDIENTE: Lista de Eventos del Bot a activar.

subscribe enable events


💪 Colaboradores


Alejandro E. Rendon

Basado en Slack Events API Python

About

:robot: :snake: Bot asistente para Slack

License:MIT License


Languages

Language:Python 100.0%