10

Хочу создать Бота, который будет посылать оповещения о выключении света в офисе или об отключении сервера. Перерыл кучу сайтов и так не понял, есть ли такая возможность у бота или нет? Сделал,чтобы он отвечал на вопросы без проблем, а вот чтобы он сам при определенном событии присылал оповещения не могу. Если есть,то какой командой регулируется это в апи?

edem
  • 5,970
shatoidil
  • 1,492

1 Answers1

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