Задать вопрос
@psamodurov13

Сallback_query_handler не улавливает событие. В чем проблема?

Всем привет. Нужна Ваша помощь. Совсем уже не знаю в чем может быть проблема. Есть телеграмм бот на aiogram. Суть в следующем. Пользователь выбирает категорию товаров, далее выбирает как посмотреть товары со скидками (ссылка на сайт или ссылки на товары отправленные в сообщении). Так вот на моменте выбора способа просмотра возникла проблема. Делаю inline кнопки с callback_data 1+категория или 2+категория. Далее коллбэк хэндлер ни в какую не хочет обрабатывать ответ. Вот код:

@dp.message_handler(lambda message: message.text in nav.categories_dict)
async def choice_type(message: types.Message):
    view_keyboard = types.ReplyKeyboardMarkup()
    view_button_site = types.InlineKeyboardButton(text='Посмотреть список на сайт', callback_data='1'+message.text)
    view_button_tb = types.InlineKeyboardButton(text='Прислать ссылки в чат', callback_data='2'+message.text)
    view_keyboard.add(view_button_site, view_button_tb, nav.button_to_main)
    await message.answer('Хотите посмотреть список товаров на сайте или прислать ссылки на товары в чат?',
                           reply_markup=view_keyboard)
    print(message.text)


@logger.catch
@dp.callback_query_handler(lambda c: c.data[0] == '1')
async def link_sale(call: types.CallbackQuery):
    await call.message.answer('Перейти на сайт:')
    await call.answer()

Вместо lambda c: c.data[0] == '1' уже что только ни пробовал
- Text(startswith('1')
- lambda c: c.data
- изначально пробовал фабрику коллбэков cb.filter(action=["add"])
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
Buchachalo
@Buchachalo
Покажите фрагмент кода где вы делаете клавиатуру инлайн
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы