Как заменить или удалить смс при нажании на инлайн кнопку в Telegram?
Нужно чтобы смс с инлайн кнопками при нажатии заменялось на последующее смс с инлайн кнопками на месте. Ну или вовсе удалялось предыдущее и отправлялось новое
@bot.message_handler(commands=['start'])
def start(message):
text = f'<b>Приветствую ?</b>' \
f'\nДанный бот создан для того чтобы предположить дату вашей смерти исходя из ответов'\
f'\nЧтобы пройти тест и узнать дату смерти выберите подходящий вариант ниже.'
markup = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
btn1 = types.KeyboardButton('Пройти тест ?')
btn2 = types.KeyboardButton('О боте')
markup.add(btn1,btn2)
bot.send_message(message.from_user.id, text, parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def mess(message):
text1 = '1. Ваш пол:'
markup = types.InlineKeyboardMarkup(row_width=1)
btn1 = types.InlineKeyboardButton('Мужчина', callback_data = '1')
btn11 = types.InlineKeyboardButton('Женщина', callback_data = '2')
markup.add(btn1,btn11)
if (message.text == 'О боте'):
bot.send_message(message.chat.id, 'Автор')
elif (message.text == 'Пройти тест ?'):
bot.send_message(message.chat.id, text1, reply_markup=markup, parse_mode='html')
@bot.callback_query_handler(func=lambda call:True)
def callback(call):
text2 = '2. Вы занимаетесь спортом?'
markup = types.InlineKeyboardMarkup(row_width=1)
btn2 = types.InlineKeyboardButton('Да', callback_data='3')
btn22 = types.InlineKeyboardButton('Нет', callback_data='4')
markup.add(btn2, btn22)
text3 = '3. Ваша работа связана с.. '
markup2 = types.InlineKeyboardMarkup(row_width=1)
btn3 = types.InlineKeyboardButton('Умственной деятельностью', callback_data='5')
btn33 = types.InlineKeyboardButton('Физическим трудом', callback_data='6')
markup2.add(btn3, btn33)
if call.message:
if call.data == '1':
bot.edit_message_text(call.message.chat.id, text2, reply_markup=markup)
elif call.data == '2':
bot.send_message(call.message.chat.id, text2, reply_markup=markup)
elif call.data == '3':
bot.send_message(call.message.chat.id, text3, reply_markup=markup2)
elif call.data == '4':
bot.send_message(call.message.chat.id, text3, reply_markup=markup2)
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
if call.message:
if call.data == '1':
bot.delete_message(call.message.chat.id, call.message.message_id)
bot.edit_message_text(call.message.chat.id, text2, reply_markup=markup)