Создание бота Telegram

Для чего мне это понадобилось? Как писал ранее, телефон не всегда почему-то проверяет почту, несмотря на заданный минимальный интервал проверки. Более удобным показалось использовать telegram для срочных оповещений. Задавшись этой целью, установил на сервер telegram-cli, который, как оказалось позднее, не понадобился. Снесу, однако :-)
Для начала создаем бота при помощи @BotFather. Задаем ему имя и описание. Я также задал и юзерпик для красоты. Открываем чат с этим ботом, набрав в браузере ссылку https://t.me/<имя_вашего_бота>. Затем нужно узнать ваш идентификатор. Для этого я воспользовался ботом @userinfobot, вы можете использовать другие методы. В принципе, вся нужная информация у нас есть.
Следующей задачей стала отправка сообщений из скрипта linux. Здесь нам поможет стандартный curl. После серии опытов обрисовалось примерно вот такое тело скрипта:

ChatID=*****
BotToken=******
Text="Hello, world!"

curl -s -X POST "https://api.telegram.org/bot$BotToken/sendMessage" -F chat_id="$ChatID" -F text="$Text"

Здесь ChatID, BotToken и Text — ваш идентификатор в telegram, токен бота, который вам выдали при его создании, и текст сообщения, соответственно. Хочу обратить внимание на то, что переменные в строке curl взяты в двойные кавычки. Это сделано для того, чтобы избежать утери части текста, если в нем присутствуют пробелы.
С текстом разобрались, остается отправка фотографии. Здесь все чуть-чуть сложней:

curl -s -X POST "https://api.telegram.org/bot$BotToken/sendPhoto" -F chat_id="$ChatID" -F photo="@$1" -F caption="$Text"

Добавился еще один параметр photo, в который передается имя файла. Полный путь к файлу у меня передается самому скрипту, поэтому просто используем его. Также параметр text из предыдущего примера я заменил на необязательный caption — название фото.
На текущий момент motion оповещает меня об обнаружении движения, чуть позже присылает фото и ссылку на файл с записью. В планах еще добавить обнаружение лиц на фото, чтобы было видно кто пришел или ушел. Следующим шагом может стать, например, автоматическое включение моего компьютера когда прихожу домой.

Отправить
Поделиться