Un bot que envíe una serie de mensajes programados todos los días y configuralo a tu gusto
En otros posts te mostré un bot de Telegram para compartir noticias y otro que hace sorteos.
También tengo uno (del que no hablé todavía) que chequea mis mails y me avisa cuando llegan las expensas.
Ahora mi bot me chequea los mails y si son expensas me dice cuánto es https://t.co/daI3ladOR8 pic.twitter.com/bnaK7S28yV
— Ezequiel (@betzerra) January 6, 2020
Pero antes de explicar ese bot me pareció conveniente ir por uno un poco más sencillo. Uno que todos los días en un momento determinado:
- Salude con un mensaje random.
- De la cotización del dólar (seh, otra vez).
- De el forecast del clima.
- Mande un gif random.
Si quieren pasar directamente a ver el código, pueden ir al repo daily-bot de Github.
Configurar daily-bot
Lo primero es renombrar config.yml.example
a config.yml
y reemplazar los placeholders de valores.
Telegram: token
Este lo obtenemos mensajeándonos con BotFather. Le escribimos /newbot
y seguimos las instrucciones. Al final del proceso nos va a dar un token, esto es muy importante. Cualquier persona con ese token va a poder mandar mensajes a través de su token. No compartan esa información con nadie.
Telegram: chat_id
Esto es a dónde queremos que el bot mande los mensajes. Puede ser un mensaje privado a nosotros o a un chat grupal. Hay varias formas de conseguir ese dato: yo le escribo a otros bots que ya hice y leo los logs. Sin embargo, también pueden escribirle a myidbot, seguir estas instrucciones o estas otras.
Giphy: token
Yup. Hay que crearse una cuenta de developer y pedir token.

Openweather: token
Yup. También hay que crearse una cuenta acá y pedir token.

First run
Listo, ya casi estás.
bundle install
bundle exec ruby app.rb

Si todo sale bien, deberías haber recibido tus primeros mensajes de parte de tu bot 🎉

Y eso es todo por ahora. En el próximo post vamos a ver un poquito más el código y cómo podemos hacer para automatizar que estos mensajes se manden todos los días a una hora determinada.
UPDATE: La segunda parte está acá