#!/bin/bash
TOKEN='1322235264:AAE7QI-f1GtAF_huVz8E5IBdb5JbWIIiGKI'
MSG_URL='https://api.telegram.org/bot'$TOKEN'/sendMessage?chat_id='
ID_MSG='1121093080'

send_message ()
{
  res=$( curl -s -X POST https://api.telegram.org/bot<ТОКЕН>/sendMessage -d chat_id=<ID_ЧАТА> -d text="Hello World"

Bash-Скрипт

Простой Bash-скрипт для отправки сообщения «Hello World» через Telegram API:

#!/bin/bash

TOKEN=<ТОКЕН>
CHAT_ID=<ID_ЧАТА>
MESSAGE="Hello World"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"

curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"

22 комментария
22 Replies to “Telegram API: Отправка Сообщений — Бот Для Уведомлений”

    Anton Ответить	
    Вторник Август 29th, 2017 at 08:01	

    Ошибочка:
    Отправить сообщение из командной строки а Linux, с помощью curl:

    $ curl -s -X POST https://api.telegram.org/botsendMessage -d chat_id= -d text="Hello World"

    Нет слеша перед sendMessage.
    А так спасибо за статью!
        admin Ответить	
        Вторник Август 29th, 2017 at 10:34	

        Поправил. Спасибо.
    Александр Ответить	
    Понедельник Сентябрь 18th, 2017 at 11:01	

    Спасибо, работает!
    Дмитрий Ответить	
    Среда Ноябрь 15th, 2017 at 17:53	

    Отличная статья! Все работает.
    fvgenn Ответить	
    Воскресенье Декабрь 3rd, 2017 at 23:46	

    Большое спасибо!
    Yakim Ответить	
    Суббота Декабрь 9th, 2017 at 03:38	

    Отличная статья! Большое спасибо)))
    Богдан Ответить	
    Понедельник Декабрь 11th, 2017 at 14:32	

    Если в теле сообщения есть #, то сообщение не отображается, можно ли это обойти?
    babak Ответить	
    Воскресенье Декабрь 17th, 2017 at 15:22	

    very usefull
    lulu Ответить	
    Воскресенье Декабрь 24th, 2017 at 10:04	

    Спасибо, отличный скрипт!
    elrevin Ответить	
    Суббота Декабрь 30th, 2017 at 03:33	

    Нужно заменить решётку на ее код %23 кажется.
    Роман Ответить	
    Среда Май 16th, 2018 at 10:18	

    Debian 9, OpenSSL 1.1.0f
    >curl: (60) SSL certificate problem: self signed certificate
    chitozzx Ответить	
    Понедельник Сентябрь 17th, 2018 at 19:18	

    а как прокси применить? только для этого баш-скрипта чтоб,
    Yuri Ответить	
    Суббота Сентябрь 22nd, 2018 at 17:22	

    Спасибо за статью.
    При установленном торе в линукс пользуемся curl таким образом:
    curl —socks5-hostname 127.0.0.1:9050 -s -X POST https://api.telegram.org/bot123456:fgflgfg-dfgfg-fgfgfgf/sendMessage -d chat_id=12345678 -d text=»proizvolniy text»
    Nick V Ответить	
    Среда Октябрь 10th, 2018 at 00:14	

    Ввиду судебных преследований можно использовать на своём заграничном сервере прослойки в виде php-скрипта, например вот этот:
    https://github.com/mcnemesis/proxy.php
    олег Ответить	
    Четверг Октябрь 25th, 2018 at 03:34	

    А как отправить сообщение на заданный аккаунт в телеграме? Пользователю
    Jan Kowalsky Ответить	
    Вторник Апрель 16th, 2019 at 02:51	

    Is there any option to send the file like photo.jpg ?
    Murodali Ответить	
    Воскресенье Июнь 2nd, 2019 at 06:20	

    I open https://api.telegram.org/bot/getUpdates this link in my browser and got this {«ok»:true,»result»:[]} what’s next?
    Mike Ответить	
    Пятница Сентябрь 6th, 2019 at 09:47	

    Some changes are required to make it work.
    1. Don’t `/start` your bot before opening your token url.
    2. Open your token url. (it should give you something like `{“ok”:true,”result”:[]}`
    3. Go to your bot and `/start` it
    4. Refresh your token url. (it should now give you some data)

    If you did `/start` your bot before opening your token url and got stuck at `{“ok”:true,”result”:[]}`, go to your bot and delete conversation. After that follow steps 3 and 4.
    Frederick Ответить	
    Пятница Апрель 3rd, 2020 at 16:13	

    If you don’t get a Chat ID send a message in the chat and refresh the page in the browser.
    Ahsan Ответить	
    Среда Июнь 24th, 2020 at 10:05	

    How do I send a scheduled message?
    like daily notifications
    Alisosn Ответить	
    Пятница Июль 10th, 2020 at 19:35	

    For a Linux system, use the contrab -e for schedule sends.
    luiz Ответить	
    Понедельник Октябрь 19th, 2020 at 00:49	

    thanks, I used curl command and worked nice.

Добавить комментарий


Метки
access-control anonymity ansible apache archive artifactory aws bash boot cmd command-line curl dns docker encryption git java jenkins kubernetes linux mail mongodb mysql network nmap openssl oracle password pdf performance powershell prometheus proxy python rabbitmq raspberry pi redis ssh systemd telnet text-processing tor tsm windows yum
 &)
}

who > /tmp/.ccw #сохраняем во временный файл результат
while true; do {
    gg=$(who) #получаем список сессий
    master=$(cat /tmp/.ccw | wc -l) #считаем количество строк у временного файла
    slave=$(echo "${gg}" | wc -l) #считаем количество строк текущих сессий
    if [[ "$master" != "$slave" ]] #если количество строк не равно, то отправляем сообщение
    then
        for id in $ID_MSG
    do
      send_message $id "$(hostname) $(hostname -I)
${gg}"
    done
        echo "${gg}" > /tmp/.ccw #сохраняем во временный файл, для последущего сравнения
    fi
    sleep 5
}; done
