Всем привет.
Возникла необходимость отправлять информационные сообщения с сервера в c помощью бота и Телеграм API. Сервер стоит отдельно, но есть доступ в Интернет. И периодически надо с него получать сообщения, что он живой и что там запущено.
Подробности далее…
Для этого был написан небольшой скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #!/bin/bash #send message to Telegram function F_TEL_MES () { ID="my_chat_id_token" #токен для чата. У меня начинается со знака "-". Например: -000000000000000 TOKEN="" #например: 123321:AAAA000000000AAA URL_MES="https://api.telegram.org/bot$TOKEN/sendMessage" curl -s -X POST $URL_MES -d chat_id=$ID -d text="$1 $2" 2>&1 > /dev/null } #send file to Telegram function F_TEL_DOC () { ID="my_chat_id_token" #токен для чата. У меня начинается со знака "-". Например: -000000000000000 TOKEN="" #например: 123321:AAAA000000000AAA URL_DOC="https://api.telegram.org/bot$TOKEN/sendDocument" curl -s -F chat_id=$ID -F document=@$1 $URL_DOC 2>&1 > /dev/null } #пример отправки сообщения F_TEL_MES "PRIVET!" "THIS IS TEST MESSAGE!" #пример отправки файла F_TEL_DOC "/home/myuser/test_doc.txt" |
Теперь создадим файл test_doc.txt с произвольным содержимым.
Установим бит исполнения на скрипт:
1 | chmod +x telegram.sh |
и запустим для проверки:
1 2 3 | bash telegram.sh #или ./telegram.sh |
Проверим что сообщение и файл доставились:
Для загрузки документа надо будет на него нажать (на скрине уже нажато, поэтому нет стрелочки).
Вот и всё.
В данном примере как сообщения так и файл передаются в функцию. Можно попробовать передавать в сам скрипт, но там будет несколько заморочено это сделать.
Небольшое добавление как сделать ссылку в сообщении:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/bash #send message to Telegram function F_TEL_URL () { ID="my_chat_id_token" #токен для чата. У меня начинается со знака "-" TOKEN="bot_id:bot_token" #например: 123321:AAAA000000000AAA URL_MES="https://api.telegram.org/bot$TOKEN/sendMessage" curl -s -d "chat_id=$ID&parse_mode=markdown&text=$1" $URL_MES >/dev/null } #на одной строке F_TEL_URL "Telegram LINKS. [КРАСИВАЯ ССЫЛКА](https://blog.deltamoby.ru)" #с переносом на другую строку F_TEL_URL "Telegram LINKS. [КРАСИВАЯ ССЫЛКА](https://blog.deltamoby.ru)" |
If you found an error, highlight it and press Shift + Enter or to inform us.