Иногда возникает необходимость быстро и легко, без танцев с бубном передать себе какое-то оповещение, чтоб узнать статус задачи или получить моментальное сообщение об ошибке, будь то в работе программы, сайта или какого-нибудь скрипта, да откуда угодно!
Чтобы каждый раз не городить сложных систем и не придумывать, как же всё-таки получить уведомление из недр программы, был создан небольшой телеграм-бот @notifyman_bot. И вот, как он работает:
Для начала надо написать боту, чтоб получить специальную ссылку, на которую потом можно делать запросы методами GET или POST, передав сообщение в параметре msg
. Бот понимает, кому какая ссылка принадлежит, и при получении сообщения на сайте, тут же заботливо отправляет это же сообщение в Телеграм нужному человеку, который эту самую ссылку сгенерировал. Вот и вся магия, всё довольно просто, но эффективно!
И вот, как всё это выглядит:
А теперь попробуем что-нибудь отправить, просто открыв в браузере этот адрес, но с параметром msg, иначе будет ошибка:
Стоило вписать параметр msg=Hello, world🤘😎
, как бот тут же прислал это сообщение в Телеграм, а на сайте в ответ получили OK. Если что-то пойдёт не так, в ответ на запрос будет выдано соответствующее сообщение (например, ссылка уже не валидна или не передан параметр с сообщением).
Также важный момент: если отправлять сообщения методом GET, нужно позаботиться о том, чтоб параметр msg был urlencoded, но это, думаю, и так понятно.
Помимо простого текста, можно отправлять сообщения с Markdown разметкой. Для этого нужно передать параметр type
со значением markdown
. Давайте посмотрим, как это выглядит:
В этот раз отправили сообщение msg=*Hello*, _world_ 🤘😎
, и слово Hello стало полужирным, а слово world наклонным. Если не передать параметр type=markdown
, то все эти символы разметки передались бы как есть.
Вот ещё пара примеров отправки оповещений из консоли, используя curl и другие средства:
А что на счёт PowerShell?
В общем, суть, думаю, ясна).
Бот имеет свою страничку, где есть та же инструкция по шагам, но без картиночек: notify.qofa.ru
Не нужно ничего устанавливать, не нужно встраивать какой-то сложный код в свои скрипты или сайты, достаточно обратиться по выданному ботом адресу и на этом всё!
Практически любой язык программирования имеет возможность делать HTTP-запросы, а потому отправлять себе уведомления через бота можно откуда угодно.
Осталось только придумать, где это можно использовать, а сценариев использования полным-полно! Для любой ОС есть wget или curl, а если нет, то уж точно можно найти способ сделать GET-запрос :).
Кстати, если нужно аннулировать ссылку, то достаточно отправить боту команду /stop или /nonotify (об этом бот сам пишет при создании ссылки). Это может пригодиться, если нужно избавиться от прежней ссылки (вдруг она кому-то попала, и теперь кто-то спамит вам сообщениями в телегу), ну или может просто ссылка старая надоела, захотелось чего-то нового, всякое ж может быть 😬
На этом, пожалуй, всё! Кажется, эту статью я дольше писал, чем самого бота делал, жуть!
Но почему бы не поделиться с миром ещё одной полезной приблудой, может, кому-то ещё пригодится, а я этому буду только рад).
Возможно, в будущем появится возможность создавать разные ссылки для разных приложений, чтоб не было одной ссылки на всё про всё, да и так удобней и безопасней будет, а в итоге всё дойдёт до полноценной системы сборы событий и логов, но таких систем, кажется, и без этого хватает 😅