Как ответить на сообщения пользователя в боте телеграм с кнопками
нужно при нажатии button что бы выводилось сообщение о том что бы пользователь ввел число, он должен ввести число но не меньше 2 и не больше 80 как описано в этом отрывке кода, и если число от 2 до 80 то нужно вывести другое сообщение с другой инлайн кнопкой
@bot.callback_query_handler(func=lambda call:True)
def keyboard_inline_call(call):
elif call.data == 'button':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,text='Enter num')
try:
if int(call.message.text) < 2:
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='❌')
elif int(call.message.text) > 80:
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text='❌')
else:
k = telebot.types.InlineKeyboardMarkup()
k.add(types.InlineKeyboardButton(text='Buy', callback_data='buy'))
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
text='что то', reply_markup=k)
except ValueError:
bot.send_message(call.message.chat.id, 'Sorry: Error')
но бот отправляет сразу
Enter num
Sorry: Error
не давая пользователю ввести число
помогите как решить данный вопрос
Ответы (1 шт):
Автор решения: Hugason
→ Ссылка
получилось найти решение для моего вопроса
elif call.data == 'button':
amount_item = bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,text='Enter num')
bot.register_next_step_handler(amount_item, answer_item)
def answer_item(message):
try:
item_summ = message.text
if int(item_summ) < 2:
amount_item = bot.send_message(message.chat.id, text='❌')
elif int(item_summ) > 80:
amount_item = bot.send_message(message.chat.id, text='❌')
else:
ppk = telebot.types.InlineKeyboardMarkup()
ppk.add(types.InlineKeyboardButton(text='Buy', callback_data='buy'))
bot.send_message(message.chat.id,
text='<b>?CHTO-TOTAM</b>'+ str(item_summ),
reply_markup=ppk, parse_mode="Html")
except ValueError:
bot.send_message(message.chat.id, 'Sorry: Error')