Skip to content

ColombiaPython/slack-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Releases

No releases published

Packages

No packages published

Languages