Sending Messages Using a Telegram Bot and Bash

  ·   3 min read

In recent years, automation has become an indispensable pillar in the DevOps landscape. One prevalent requirement for many operations teams is effective communication, often achieved through messaging platforms. Telegram, an easy-to-use messaging application with robust API support, is a great choice for integrating notifications and messages into your DevOps workflows. This article will explore how to send messages using a Telegram bot and Bash scripting.

Prerequisites

Before we dive into the script, ensure you have the following:

  1. A Telegram account.
  2. A Telegram bot created through the BotFather.
  3. Your Telegram chat ID where the messages will be sent.
  4. A Bash environment set up on your machine.

Step 1: Create a Telegram Bot

  1. Open your Telegram app and search for @BotFather.
  2. Start a chat and send the command /newbot to create a new bot.
  3. You’ll be prompted to provide a name and a username for your bot. Once created, PowerFather will give you a unique API token. Keep this handy!

Step 2: Get Your Chat ID

To send messages directly to your personal Telegram account or a group chat, you need your chat ID. You can obtain this by sending a message to your bot and checking the updates sent from Telegram.

  1. Use the following URL in your browser (replace YOUR_BOT_TOKEN with your bot’s API token):

    https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates
    
  2. Send a message to your bot.

  3. Refresh the URL in your browser. You will see a JSON response. Look for the chat object within. It will contain your chat ID, presented as a numeric value.

Step 3: Bash Script to Send Messages

Now, let’s create a simple Bash script that leverages the Telegram Bot API to send messages.

#!/bin/bash

# Replace these variables
API_TOKEN="YOUR_BOT_TOKEN"
CHAT_ID="YOUR_CHAT_ID"
MESSAGE="Hello, this is a test message from my Telegram bot!"

# Function to send the message
sendMessage() {
    curl -s -X POST "https://api.telegram.org/bot$API_TOKEN/sendMessage" \
    -d "chat_id=$CHAT_ID" \
    -d "text=$MESSAGE"
}

# Sending the message
sendMessage

Step 4: Running the Script

  1. Save the script as send_telegram_message.sh.

  2. Give it executable permissions with the following command:

    chmod +x send_telegram_message.sh
    
  3. Now, execute the script:

    ./send_telegram_message.sh
    

If everything is set up correctly, you should see the message “Hello, this is a test message from my Telegram bot!” in your Telegram chat.

Additional Features

You can enhance this script with additional functionalities, such as:

  • Sending messages with custom formatting (Markdown or HTML).
  • Scheduling messages using cron.
  • Integrating the script into other automation tools like Jenkins or CI pipelines for alerts.

Conclusion

Using Telegram API with Bash scripting provides a straightforward method for automating notifications and messages in your DevOps workflows. With just a few lines of code, you can keep your team informed and streamline your processes.

For more advanced usage and further reading, here are some recommended resources:

By implementing this integration, you can facilitate effective communication within your team, enhancing your overall operational efficiency. Happy scripting!