Главная страница

Теги. bot теги. Бот создан, настроен, но как его запустить Если сейчас мы перейдём в нашего бота и запустим его, то мы получим Ничего мы и не получим, т к. мы только создали бота


Скачать 1.86 Mb.
НазваниеБот создан, настроен, но как его запустить Если сейчас мы перейдём в нашего бота и запустим его, то мы получим Ничего мы и не получим, т к. мы только создали бота
Дата22.10.2022
Размер1.86 Mb.
Формат файлаodt
Имя файлаbot теги.odt
ТипДокументы
#747707
страница19 из 27
1   ...   15   16   17   18   19   20   21   22   ...   27

Ну и зачем нужна была эта ссылка?


С помощью этой ссылки можно узнать 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('Пользователь заблокировал бота')
1   ...   15   16   17   18   19   20   21   22   ...   27


написать администратору сайта