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

Почему не работает последние кнопки в телеграм боте?

Подскажите, как тут правильнее всего сделать. Я делаю 3 углубленние в Inline кнопках, но вот последний не работает почему то. Подскажите в чем может быть прблема?

Вот пример второго углубленния, вот таких 2, первое два углубления работают, а последнее нет. Почему-не понимаю. Менял callback, переменные item- не получается:
@bot.message_handler(commands=['start'])
def button(message):
    markup = types.InlineKeyboardMarkup(row_width=2)
    item = types.InlineKeyboardButton('Купить', callback_data='buy')
    item2 = types.InlineKeyboardButton('Продать', callback_data='sell')
    markup.add(item, item2)
    bot.send_message(message.chat.id, '''Приветствую, это быстрый мониторинг-бот, которые найдет для вас самое выгодное предложение в один клик!''', reply_markup=markup)

@bot.callback_query_handler(func=lambda call: True)
def bot_message (call):
    if call.data == 'buy':
        markup2 = types.InlineKeyboardMarkup(row_width=2)
        item3 = types.InlineKeyboardButton('RUB(Рубль)', callback_data='rub')
        item4 = types.InlineKeyboardButton('KZT(Тенге)', callback_data='kzt')
        item5 = types.InlineKeyboardButton('THB(Бат)', callback_data='thb')
        markup2.add(item3, item4, item5)
        bot.send_message(call.message.chat.id,  'Выберите валюту', reply_markup= markup2)
    elif call.data == 'sell':
        markup3 = types.InlineKeyboardMarkup(row_width=2)
        item6 = types.InlineKeyboardButton('BTC(Биткоин)', callback_data='btc')
        item7 = types.InlineKeyboardButton('USDT(Стейблкоин)', callback_data='usdt')
        item8 = types.InlineKeyboardButton('ETH(Эфириум)', callback_data='eth')
        item9 = types.InlineKeyboardButton('BNB(Бинанс коин)', callback_data='bnb')
        item10 = types.InlineKeyboardButton('USDC(Стейблкоин)', callback_data='usdc')
        markup3.add(item6, item7, item8, item9, item10)
        bot.send_message(call.message.chat.id,' Выберите криптовалюту', reply_markup= markup3)



@bot.callback_query_handler(func=lambda call: True)
def call_message (call1):
    if call1.data == 'btc':
        markup4 = types.InlineKeyboardMarkup(row_width=2)
        item11 = types.InlineKeyboardButton('RUB1(Рубль)', callback_data='rub1')
        item12 = types.InlineKeyboardButton('KZT1(Тенге)', callback_data='kzt1')
        item13 = types.InlineKeyboardButton('THB1(Бат)', callback_data='thb1')
        markup4.add(item11, item12, item13)
        bot.send_message(call1.message.chat.id,  'Выберите валюту', reply_markup = markup4)
    elif call1.data == 'rub':
        markup5 = types.InlineKeyboardMarkup(row_width=2)
        item14 = types.InlineKeyboardButton('BTC(Биткоин)', callback_data='btc1')
        item15 = types.InlineKeyboardButton('USDT(Стейблкоин)', callback_data='usdt1')
        item16 = types.InlineKeyboardButton('ETH(Эфириум)', callback_data='eth1')
        item17 = types.InlineKeyboardButton('BNB(Бинанс коин)', callback_data='bnb1')
        item18 = types.InlineKeyboardButton('USDC(Стейблкоин)', callback_data='usdc1')
        markup5.add(item14, item15, item16, item17, item18)
        bot.send_message(call1.message.chat.id,' Выберите криптовалюту', reply_markup= markup5)


bot.polling(non_stop=True)

<code>
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@Hardans
сам только начинаю изучение и тоже столкнулся с такой проблемой хоть и отличается вызов панели ( у меня через keyboard), но могу попробовать посоветовать перенести анализ нажатия (последний блок) в предыдущий
Как я понял это связано с тем что сигнал находящийся в if elif else и подобном остается в своем же @bot
Ответ написан
Ваш ответ на вопрос

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

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