@Frik44

Почему не работает кнопка в боте?

кнопка:
ikb2 = InlineKeyboardMarkup(row_width=3)
but = InlineKeyboardButton(text='Trading', callback_data='11')
ikb2.add(but)

функция:
async def trading(call):
    if call.data == '11':
        await bot.send_message(chat_id=call.from_user.id, text='fff')

и все регестраторы:
def register_handlers_other(dp: Dispatcher):
    dp.register_message_handler(start, commands=['start'])
    dp.register_callback_query_handler(go_team, lambda call: call.data == 'GO')
    dp.register_callback_query_handler(reg_start, lambda call: call.data == 'GO1', state=None)
    dp.register_callback_query_handler(where, lambda call: True, state=FSMReg.where)
    dp.register_message_handler(experience, state=FSMReg.experience)
    dp.register_callback_query_handler(accept, lambda call: True)
    dp.register_callback_query_handler(trading, lambda call: call.data == '11')
    dp.register_message_handler(start1, text='‍Главное меню')


не могу разобраться почему не работает кнопка((
пробовал и так
dp.register_callback_query_handler(trading, lambda call: True)

что только не пробовал в бестолку
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
nki
@nki
bezkart.ru готовая система лояльности
А в каком месте кнопка выводится вместе с сообщением?
Ответ написан
Комментировать
@sewar
Дело в том, что в вашем коде указано, что кнопка должна вызывать функцию trading, когда в объекте call в поле call.data будет содержаться значение 11. Однако в вашей реализации этого не происходит, так как вы добавляете кнопку с текстом Trading, а не 11. Чтобы функция trading вызывалась при нажатии на кнопку, вы должны указать в кнопке callback_data='Trading', а в обработчике указать call.data == 'Trading'.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы