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

Python, telegram bot как сделать удаление inline кнопки?

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):


    try:
        if call.message:

            # keyboard (Работа с кнопками под текстом)
            if call.data == '1':
                    keyboard = types.InlineKeyboardMarkup()
                    item1 = types.InlineKeyboardButton(text="Smoant Pasito 1/2", callback_data="pasito")
                    item2 = types.InlineKeyboardButton(text="Smok Novo 2", callback_data='novo')
                    keyboard.add(item1, item2,)
                    bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                          text="Какую Pod Систему вы хотите?", reply_markup=keyboard)

            elif call.data == "pasito":
                bot.send_photo(call.message.chat.id, open("pasito.jpg", "rb"), 'Smoant Pasito 1 \n Цена: 3650Р \n Аккумулятор: 1100 мАч \n Напряжение 3,2B - 4,2B \n Объем 3мл.')


            elif call.data == "novo":
                bot.send_photo(call.message.chat.id, open("smoknovo.jpg", "rb"), 'Smok Novo 2 \n Цена: 2350Р \n Аккумулятор: 800 мАч \n Напряжение 6Вт - 25Вт \n Объем 2мл.')


Я хочу при нажатии на кнопку, удаление текста и самой кнопки
if call.data == '1':
                    keyboard = types.InlineKeyboardMarkup()
                    item1 = types.InlineKeyboardButton(text="Smoant Pasito 1/2", callback_data="pasito")
                    item2 = types.InlineKeyboardButton(text="Smok Novo 2", callback_data='novo')
                    keyboard.add(item1, item2,)
                    bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                          text="Какую Pod Систему вы хотите?", reply_markup=keyboard)
  • Вопрос задан
  • 4181 просмотр
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@MaxKra1985
разработчик java, python
Для редактирования текстовых сообщений используйте edit_message_text
Для редактирования подписей к фото - edit_message_caption
Для удаления клавиатур надо в reply_markup отправлять ReplyKeyboardRemove()
Ответ написан
@twistfire92
Python backend developer
Удаление и текста и кнопки - это же удалить сообщение?
Могу ошибаться в полях, где хранятся id чата и сообщения, но пробуйте так:
bot.delete_message(call.message.chat.id, call.message.message_id)

И да, удалить сообщение нельзя если оно старше 48 часов. Так что оборачивайте в try.
Ответ написан
Комментировать
@nicholaygeorgiev
one_time_keyboard
Boolean
Optional. Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to false.
Жаль, что такая функция только для нижней клавиатуры, но вдруг пригодится.
https://core.telegram.org/bots/api#replykeyboardmarkup
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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