Хочу создать Бота, который будет посылать оповещения о выключении света в офисе или об отключении сервера. Перерыл кучу сайтов и так не понял, есть ли такая возможность у бота или нет? Сделал,чтобы он отвечал на вопросы без проблем, а вот чтобы он сам при определенном событии присылал оповещения не могу. Если есть,то какой командой регулируется это в апи?
Asked
Active
Viewed 5,534 times
1 Answers
17
То, что Вам нужно - это обычный POST/GET запрос вида
https://api.telegram.org/bot<YourBotToken>/sendMessage?chat_id=1234567&text=HelloBot
где:
<YourBotToken>- токен Вашего бота;chat_id- идентификатор того чата, куда вы хотите послать сообщение;text- текст самого сообщения.
Вешаете на нужное событие этот запрос, передавая соответствующие chat_id и text, получаете профит.
Важно понимать, что если бот заблокирован пользователем (попросту говоря - удалён), то запрос вернёт ошибку и пользователь сообщение не получит. При этом если у бота не реализована обработка исключений, то он упадёт.
Anatol
- 3,746
-
Я правильно понимаю, что такой бот будет исключительно публичный? – vitidev Mar 23 '17 at 11:09
-
Не понял вопроса. Что значит "публичный бот"? – Anatol Mar 23 '17 at 11:28
-
Значит что на этот бот сможет подписаться кто угодно. А хотелось бы сделать личную уведомлялку без лишних глаз и не писать при этом полноценного бота. – vitidev Mar 23 '17 at 11:33
-
2Для этого есть Telegram API, а боты не бывают приватными. Для простых уведомлений бота писать не нужно, вообще. Достаточно создать его и использовать токен в запросах, подобных тому, что показан в ответе. – Anatol Mar 23 '17 at 12:02
-
Что касается того, кто подпишется или нет на бота - имеет значение только в том случае, если будет реализована массовая рассылка. Пример выше показывает, как послать уведомление одному конкретному пользователю, кроме него это сообщение никто не получит – Anatol Mar 23 '17 at 12:05
-
"То, что Вам нужно - это обычный POST/GET запрос вида" А как этот запрос исполнить из программы? – Павел Глазков Oct 17 '22 at 12:51
-
@ПавелГлазков это базовая возможность любого языка программирования/фреймворка – Anatol Nov 18 '22 at 04:23