Ошибка, с которой вы столкнулись, указывает на то, что переменная `message` не определена в контексте вашей функции `check_btn`. Это происходит потому, что `message` не передается в функцию как аргумент. Вместо этого, у вас есть объект `call`, который представляет собой объект `callback_query`. Вы должны использовать `call` для доступа к данным сообщения.
Вот исправленный вариант кода:
@dp.callback_query_handler(text='btn_check1')
async def check_btn(call: types.CallbackQuery):
await call.message.answer("проверка подписки")
user_channel_status = await bot.get_chat_member(chat_id=-1002022328830, user_id=call.from_user.id)
user_channel_status = re.findall(r"\w*", str(user_channel_status))
try:
if 'left' not in user_channel_status:
# Условие для "подписанных"
await bot.send_message(call.from_user.id, 'вы подписаны')
else:
# Условие для тех, кто не подписан
await bot.send_message(call.from_user.id, 'вы не подписаны')
except Exception as e:
print(f"Произошла ошибка: {e}")
Обратите внимание, что я заменил `message.chat.id` и `message.from_
user.id ` на `call.from_
user.id `, чтобы использовать ID пользователя, который инициировал callback-запрос. Также я добавил обработку исключений для отлова возможных ошибок и вывода их в консоль. Это поможет вам лучше понять причину возникновения ошибки, если она снова произойдет.