Долгое время работаю с aiogram, однако данная проблема поставила в тупик. При вызове хендлера
subscribe_confirm получаю ошибку
Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard, вроде callback_data в кнопках есть, не могу понять, что не так.
Код хендлера:
@router.callback_query(SubscriptionCallback.filter(F.action == "confirm"))
async def subscribe_confirm(call: CallbackQuery, callback_data: SubscriptionCallback):
period = "навсегда" if callback_data.period == 0 else f"на {callback_data.period} месяц(а/ев)"
await call.message.edit_text(text=f"Вы уверены, что хотите приобрести подписку сроком {period}?",
reply_markup=confirm_subscribe_kb(callback_data.period, callback_data.call_from))
await call.answer()
Код клаивиатуры:
def confirm_subscribe_kb(period: int, call_from: str):
keyboard = InlineKeyboardMarkup(row_width=2,
inline_keyboard=[
[
InlineKeyboardButton(text="✅ Да",
callback_data=SubscriptionCallback(
action="subscribe",
period=period,
call_from=call_from).pack()),
InlineKeyboardButton(text="❌ Нет",
сallback_data=SubscriptionCallback(
action="choose_period",
call_from=call_from).pack())
]
])
return keyboard