Cómo construir un Servidor Web y Bot de Memes para Slack
-
Upload
david-ballen -
Category
Software
-
view
56 -
download
2
Transcript of Cómo construir un Servidor Web y Bot de Memes para Slack
![Page 1: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/1.jpg)
Cómo construir un bot para Slack
@davsket
https://github.com/davsket/slack-bot-experiment
![Page 2: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/2.jpg)
David Avellaneda
@davsket
Co-organizador de: BogotáJS JSConf.co
Char.la ColombiaDev
Co-fundador de: Monoku
![Page 3: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/3.jpg)
• Soy Tauro • Me gusta correr en la playa • Tengo un hijo (el de la foto) • En serio me gusta mucho
correr • Me gusta compartir lo que se
![Page 4: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/4.jpg)
Cómo construir un Servidor y Bot de Memes
para Slack@davsket
![Page 5: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/5.jpg)
Agenda
![Page 6: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/6.jpg)
Agenda
• ¿Qué vamos a hacer? v2
• ¿Qué necesitamos? v2
• JUST DO IT!!! step++ v2
• Momento philosoraptor v2
![Page 7: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/7.jpg)
¿Qué vamos a hacer?
![Page 8: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/8.jpg)
¿Qué necesitamos?
![Page 9: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/9.jpg)
¿Qué necesitamos?• promesas (yup, de nuevo)
• como funciona slack (APIs)
• CommonJS (require)
• variables de entorno
• node / express (básico) *
• request *
• heroku o now o ngrok *
• servicio de memes !!!!
![Page 10: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/10.jpg)
Promises
• Solo se puede resolver o rechazar una vez • De ahí en adelante puedes preguntar cuantas veces
sea el resultado • Si una función retorna un valor, el siguiente then
obtiene el valor de esta • para request y otros asyncs…
var p = new Promise((resolve, reject) => { resolve(5) })p.then(num => console.log(num)) // 5p.then(num => num * 5) .then(num => console.log(num)) // 25
![Page 11: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/11.jpg)
Slack Apps• ya existen muchas apps • si creas una propia puedes:
• recibir comandos por medio de texto • `/elcomando argumento` • `@botname argumentos`
• mandar respuestas (sync & async) • de texto plano • con attachments
![Page 12: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/12.jpg)
Slack Bot
• App propia (para escuchar comandos slash con permisos)
• Incoming WebHooks (para mandar mensajes)
![Page 13: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/13.jpg)
Crear App Propiahttps://api.slack.com/apps?new_app=1
Esta app va a ser privada hasta que no la distribuyan
![Page 14: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/14.jpg)
Crear App Propiahttps://api.slack.com/apps?new_app=1
Esta app va a ser privada hasta que no la distribuyan
![Page 15: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/15.jpg)
App Propia + Slash Cmds
![Page 16: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/16.jpg)
App Propia + Slash Cmd
![Page 17: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/17.jpg)
Slash Command
![Page 18: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/18.jpg)
App Propia + Add to Team
![Page 19: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/19.jpg)
App Propia / Incoming Webhook vs
Incoming Webhook App
![Page 20: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/20.jpg)
App Propia + Oauth
![Page 21: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/21.jpg)
App Propia + OauthGuardala!!
![Page 22: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/22.jpg)
App Propia + Permisos
![Page 24: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/24.jpg)
Incoming Webhook: add config
![Page 25: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/25.jpg)
Incoming Webhook: addconfig
![Page 26: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/26.jpg)
Incoming Webhook: URL
Guardala!!
![Page 27: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/27.jpg)
![Page 28: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/28.jpg)
KEYS: 2
![Page 29: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/29.jpg)
CommonJS
module.exports = 'Hello World'
hi.js
var hi = require('./hi') console.log(hi)
index.js
![Page 30: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/30.jpg)
Variables de Entorno
var url = process.env.SLACK_WEBHOOK_URL console.log(url)
![Page 31: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/31.jpg)
Servicio Memes
https://memegen.link
https://github.com/jacebrowning/memegen
https://memegen.link/api
![Page 32: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/32.jpg)
![Page 33: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/33.jpg)
1. Hacer módulo de Memes
![Page 34: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/34.jpg)
2. Imprimir lista y meme de la lista
![Page 35: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/35.jpg)
3. Exponer Pagina Web
![Page 36: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/36.jpg)
4. Exponer Pagina Web pero Bien
![Page 37: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/37.jpg)
5. Exponer Pagina Web pero Cool
![Page 38: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/38.jpg)
6. Exponer Servicio tipo Bot
![Page 39: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/39.jpg)
Slash CommandPOST application/x-www-form-urlencoded
POST Body =
![Page 40: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/40.jpg)
Test con ngrok
![Page 41: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/41.jpg)
Hasta el momento…
![Page 42: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/42.jpg)
7. Exponer Servicio tipo Bot Como Debe Ser
![Page 43: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/43.jpg)
7. Exponer Servicio tipo Bot Como Debe Ser
• Obtener info del usuario usando la llave del Oauth
• Enviar meme a Slack usando el Incoming Webhook
![Page 44: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/44.jpg)
![Page 45: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/45.jpg)
Preguntas?
![Page 46: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/46.jpg)
Gracias!
![Page 47: Cómo construir un Servidor Web y Bot de Memes para Slack](https://reader034.fdocument.pub/reader034/viewer/2022052514/58e4db9c1a28abf5048b6049/html5/thumbnails/47.jpg)
@davsket
https://github.com/davsket/slack-bot-experiment