|
Теги. bot теги. Бот создан, настроен, но как его запустить Если сейчас мы перейдём в нашего бота и запустим его, то мы получим Ничего мы и не получим, т к. мы только создали бота
Ну и зачем нужна была эта ссылка? С помощью этой ссылки можно узнать chat_id канала, и использовать его для отправления сообщений в закрытые каналы:
bot.send_message( -1001387583605 , "Сообщение в закрытый канал" )
Также с помощью этой ссылки я показал вам как работает API телеграма. На момент написания текста и записи видео, я думал, что узнать chat_id закрытого канала можно только с помощью API, но Дмитрий придумал способ намного легче.
В чём суть:
Отправляем в закрытый канал какое-либо сообщение Бота настраиваем на получение любого сообщения и вывод message Пересылаем из закрытого канала сообщение боту Бот выведет информацию о пересланном сообщении, в котором можно обратиться forward_from_chat , и потом уже получить chat_id
Что за модуль requests ?
requests - модуль python, который позволяет отправлять все виды http запросов. Он устанавливается автоматически с TeleBot, т.к. TeleBot именно с помощью него отправляет запросы и получает ответы.
TeleBot как-то конвертирует JSON в python-словари, скорее всего используется модуль json .
Скоро все эти модули будут разобраны более подробно. Для рассылки сообщений пользователям бота существует особый мето... НЕТ! Нету никаких методов для рассылки сообщений. Для этого придётся придумывать что-то самим.
Дополнение к предыдущему шагу К коду с прошлого видео:
import telebot bot = telebot.TeleBot( 'token' ) @bot.message_handler(commands=['start']) def start(message) : with open( 'chatids.txt' , 'a+' ) as chatids: print(message.chat.id, file=chatids) @bot.message_handler(commands=['rassylka']) def rassylka(message) : if message.chat.id == 'ВАШ CHAT ID' : for i in open( 'chatids.txt' , 'r' ).readlines(): bot.send_message(i, 'Рассылка' ) bot.polling()
можно добавить проверку на наличие chat id в текстовом файле, и уже от этого отталкиваться при записи. Лучше всего, конечно, использовать базы данных.
Также если пользователь заблокирует бота, мы получим такую ошибку при отправке ему сообщения:
Error code: 403. Description: Forbidden: bot was blocked by the user
Чтобы обойти эту ошибку мы можем использовать try ...except :
try : bot.send_message(user_chat_id, 'Рассылка' ) except Exception as e: print( 'Пользователь заблокировал бота' )
|
|
|