Всем привет.
Возникла необходимость отправлять информационные сообщения с сервера в 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 |
#!/bin/bash #send message to Telegram function F_TEL_MES () { ID="[ID вашего чата]" URL_MES="https://api.telegram.org/[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="[ID вашего чата]" URL_DOC="https://api.telegram.org/[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 |
Проверим что сообщение и файл доставились:
Для загрузки документа надо будет на него нажать (на скрине уже нажато, поэтому нет стрелочки).
Вот и всё.
В данном примере как сообщения так и файл передаются в функцию. Можно попробовать передавать в сам скрипт, но там будет несколько заморочено это сделать.
If you found an error, highlight it and press Shift + Enter or to inform us.