Skip to content

Instantly share code, notes, and snippets.

@kirbsraspberrypi
Forked from dideler/bot.rb
Created April 9, 2020 13:58
Show Gist options
  • Save kirbsraspberrypi/f684a257470d7a760d93468d573069a4 to your computer and use it in GitHub Desktop.
Save kirbsraspberrypi/f684a257470d7a760d93468d573069a4 to your computer and use it in GitHub Desktop.
Sending a notification message to Telegram (via cURL)
  1. Create a bot
  2. Gets its API token (via @BotFather)
  3. Get the ID of the chat
    1. Add your bot to the chat
    2. Fetch bot updates and look for the chat id:
      curl https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates | jq .message.chat.id
      
    3. OR, run bot.rb and @-mention your bot in the chat. The chat id will appear in bot.rb's output.
      The bot may need temporary message access: @BotFather > Bot Settings > Group Privacy > Turn off
  4. Send a message via their HTTP API: https://core.telegram.org/bots/api#sendmessage
    curl -X POST \
         -H 'Content-Type: application/json' \
         -d '{"chat_id": "123456789", "text": "This is a test from curl", "disable_notification": true}' \
         https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage
# Use this script to test that your Telegram bot works.
#
# Install the dependency
#
# $ gem install telegram_bot
#
# Run the bot
#
# $ ruby bot.rb
#
# Send a message to the bot to get the current chat's ID in the console output.
# If it's a group chat, invite them to the chat first.
require 'logger'
require 'telegram_bot'
TELEGRAM_BOT_TOKEN = "YOUR_BOT_API_TOKEN"
bot = TelegramBot.new(token: TELEGRAM_BOT_TOKEN, logger: Logger.new(STDOUT))
bot.get_updates(fail_silently: true) do |message|
puts "@#{message.from.username}: #{message.text}"
puts "Chat-ID: #{message.chat.id}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment