mykeels.com

Use telegram for custom notifications

Today, I had to run do some serious number crunching, and I couldn’t use my local machine, because I needed it to work, so I spun up a…

Use telegram for custom notifications

Today, I had to run do some serious number crunching, and I couldn’t use my local machine, because I needed it to work, so I spun up a digital ocean droplet.

In a few minutes, I had my program ready to go.

I found out about screen, a CLI tool that lets you run tasks in the background, after you terminate an SSH session, and my program was soon chugging along nicely.

Pictured: chugging along nicely

I soon realised I’d have to check every now and then, to know when it was done, and in the spirit of automation, I was like “naaa, famm!

giphy:

giphy

naaa, famm!

There are many ways to notify yourself or a third party of some event. You could:

  • send a mail,

  • an SMS,

  • a slack message

and more.

I wanted to try Telegram Messenger, because I’d learned a while back, that it had a bot API, I could use it for such situations.

Creating a Telegram Bot

To create a Telegram bot, visit the botfather, and send him a /newbot message.

Follow the instructions, and you should soon have your API token.

Sending a message is as easy as:

curl -X POST \
       -H 'Content-Type: application/json' \
       -d '{"chat_id": "123456789", "text": "This is a test from curl"}' \
       https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage

Be sure to replace $TELEGRAM_TOKEN with API token.

To get yourchat_id,

  • add your bot to a new Group

  • send a message

  • Run:

curl -X GET \
       https://api.telegram.org/bot$TELEGRAM_TOKEN/getUpdates

You should get a JSON response, that you can inspect to get your chat_id.

Using the Telegram Bash Client

Next, I forked this bash Telegram client, which lets me send a message via

telegram -t $TELEGRAM_TOKEN -c $TELEGRAM_CHAT "Hello World!"

You can also set those environment variables, so you don’t have to type the TELEGRAM_TOKEN and TELEGRAM_CHAT every time.

The command for sending a “Hello World!” message becomes:

telegram "Hello World!"

Cool, eh?

giphy:

Giphy

Yup!

With this, as soon as the task is done, I can use that command to send myself a message, giving a summary of the result.

For more information on using Telegram bots, see their API

Tags