Помогите пожалуйста, написал телеграм бота на python с помощью aiogram для проверки на подписку определенного бота
Помогите пожалуйста, написал телеграм бота на python с помощью aiogram для проверки на подписку определенного бота и выводит это:
aiogram.utils.exceptions.BadRequest: User not found
Что делать и как исправить?
from aiogram import Bot, Dispatcher, executor, types
from config import TOKEN
from config import CHANNEL_ID
bot = Bot(token=TOKEN)
dispatcher = Dispatcher(bot)
@dispatcher.message_handler(commands=['start'])
async def start(message: types.Message):
user_channel_status = await bot.get_chat_member(chat_id=CHANNEL_ID, user_id=message.from_user.id)
if user_channel_status['status'] != 'left':
await bot.send_message(message.from_user.id, "Спасибо за подписку на канал!")
else:
button = types.InlineKeyboardButton("Я подписался", callback_data="Я подписался")
markup = types.InlineKeyboardMarkup(row_width=1).add(button)
await bot.send_message(message.from_user.id, "Сначала подпишись на канал!", reply_markup=markup)
@dispatcher.callback_query_handler(lambda call: True)
async def callback(call: types.CallbackQuery):
if call.message:
user_channel_status = await bot.get_chat_member(chat_id=CHANNEL_ID, user_id=call.from_user.id)
if user_channel_status["status"] != "left":
await bot.send_message(call.from_user.id, "Спасибо за подписку!")
else:
await bot.send_message(call.from_user.id, "Вы не подписались :(")
if __name__ == '__main__':
executor.start_polling(dispatcher, skip_updates=True)
Источник: Stack Overflow на русском