Теги. bot теги. Бот создан, настроен, но как его запустить Если сейчас мы перейдём в нашего бота и запустим его, то мы получим Ничего мы и не получим, т к. мы только создали бота
Скачать 1.86 Mb.
|
Как отправлять сообщения в закрытые каналыДля того, чтобы отправлять сообщения в закрытые каналы, нужно: 1. Сделать канал публичным, установить для него username. 2. Добавить в канал бота. 3. Перейти по ссылке: https://api.telegram.org/bot [ ТОКЕН_БОТА ]/sendMessage?chat _id=@[USERNAME_ КАНАЛА]&text=test Пример такой ссылки: https://api.telegram.org/bot5113845248:AAET1WWcrpZRjxbb4z4kcDwUstVtCfzLnhE/sendMessage?chat_id=@testdjhasdhiah&text=test После перехода по ссылке будет выведен id канала, сохраняем его: 4. Делаем канал приватным. 5. Отправляем сообщения как и раньше: bot.send_message( -1001387583605 , "Привет!" ) Также сообщения можно отправлять просто перейдя по этой ссылке, или отправив на неё запрос: https://api.telegram.org/bot [ ТОКЕН_БОТА ]/sendMessage?chat _id=[ID_ КАНАЛА]&text=test Что я и сделал в видео, использовав такую ссылку: https://api.telegram.org/bot5113845248:AAET1WWcrpZRjxbb4z4kcDwUstVtCfzLnhE/sendMessage?chat_id=-1001654401360&text=test Попробуйте создать такую же ссылку, перейти по ней, и посмотреть что произойдёт. Что же за волшебная ссылка?Каждое действие, которое совершает бот в телеграме, - совершается с помощью API. Бот отправляет запрос к API телеграма и получает ответ. Ссылка, которая была использована в прошлом шаге, - ссылка API телеграма. Если её рассмотреть внимательно, то можно увидеть следующие её части: Токен бота Метод send_message chat_id, в котором нужно использовать метод Текст сообщения А вот и сама ссылка: https://api.telegram.org/bot5113845248:AAET1WWcrpZRjxbb4z4kcDwUstVtCfzLnhE/sendMessage?chat_id=@testdjhasdhiah&text=test Эти "части" ссылок могут быть разные, и зависят от запросов, которые бот передаёт к API телеграма. Примерно так ваш бот взаимодействует с телеграм API: Давайте разберём взаимодействие подробнее. Допустим, мы хотим отправить сообщение "Привет" пользователю бота с chat_id 470208396 :1) Интерпетатор видит такую конструкцию: bot.send_message( 470208396 , "Привет" ) 2) Отправляет запрос к API телеграма: https://api.telegram.org/bot5221558431:AAGY2B6Vs80o5S_c88DxgFCmdA3kKhbepWg/sendMessage?chat_id=470208396&text=Привет 3) Сервер обрабатывает запрос. В данном случае всё указано правильно, поэтому сервер отправит сообщение, как мы его и просили: Если бы в запросе была какая-то ошибка, он бы его не выполнил. 4) Сервер передаёт ответ обратно. С помощью него можно узнать, правильно ли мы отправили запрос, его статус, и другую информацию. 5) Мы получаем ответ в формате JSON: JSON - это просто формат данных, с помощью которого серверам удобно передавать и получать информацию. 6) Интерпретатор обрабатывает JSON ответ и проверяет, получилось ли выполнить метод или нет. Если получилось - проходит дальше по коду, если нет - выбрасывает ошибку, в зависимости от ответа сервера. В данном случае сообщение отправилось, соответственно ошибок никаких не появилось. Если посмотреть внимательно, то объект Message - это тоже JSON ответ, который был переконвертирован в словарь python: |