Используя язык програмирования Python и асинхронную библиотеку Aiogram версии 3.* напишем функционал, который будет проверять подписку пользователя на предложенный канал телеграм для получения доступа к функционалу бота.
Для начала, напишем простой бот, который будет приветствовать пользователя после ввода команды /start и отправлять ему текстовую кнопку при нажатии на которую, пользователю бот будет отправлять стоимость BTC на бирже Binance .
Создадим в папке проекта файлы main.py - в котором будем писать основной код, файл config.py - в нем будем хранить токен нашего бота и id канала подписку на который будем проверять, файл keyboards.py - для клавиатур бота.
Импортируем все необходимые зависимости:
Используя библиотеку requests и api binance, напишем функцию для получения цены BTC.
Теперь напишем сам бот, который изначально не будет проверять подписку, а будет работать со всеми пользователями.
Также напишем клавиатуры для нашего бота:
Текстовая кклавитуара, в которой пользователю передается кнопка BTC, при обработке нажатия на которую отрабатывает функция get_btc_price(), и пользователю бот отвечает результатом:
Иналайн клавиатура, состоящая из двух кнопок.Первая кнопка с ссылкой на целевой канал, вторая кнопка проверки подписки.
Напишем обработчик callback_data кнопки проверки подписки на целевой канал. Будем проверять статус пользователя в целевом канале.
Для корректной отработки, бот должен быть добавлен в целевой канал с ролью "Администратор".
Наш бот готов, внеся минимальные изменения можем проверять подписку на несколько каналов.
Огромное колличество полезных скриптов на Python а также исходники данного бота можно найти в нашем телеграм канале Python_Scripts. Подписывайтесь и пользуйтесь!