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.

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.

GIPHY Developers
The GIPHY Developer Portal is how you integrate the world’s best GIF API into your business, app or project.

Openweather: token

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

Сurrent weather and forecast - OpenWeatherMap
Get current weather, hourly forecast, daily forecast for 16 days, and 3-hourly forecast 5 days for your city. Historical weather data for 40 years back for any coordinate. Helpful stats, graphics, and this day in history charts are available for your reference. Interactive maps show precipitation, c…

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á