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

Как удалить блок кнопок InlineKeyboardButton?

Подскажите как удалить блок кнопок для телеграм бота и группы, по таймеру чтобы исчезла вместе с текстом, то что пользователь, нажмет на кнопку,например через 2минуты, или чтобы нажать кнопку удалить.

@dp.message_handler(commands=['pravilapomosh'])
async def cmd_inline_url(message: types.Message):
    buttons = [
        types.InlineKeyboardButton(text="Помощь", callback_data="help"),
        types.InlineKeyboardButton(text="Правила чата", callback_data="pravila")
    ]
    sbuttons = types.InlineKeyboardButton(text="Мой канал", callback_data="repost")
    switch_button = types.InlineKeyboardButton(text="Поделиться", switch_inline_query="Поделись Ботом.")
    keyboard = types.InlineKeyboardMarkup(row_width=2)
    keyboard.add(*buttons, switch_button, sbuttons)
    await message.answer("Прочитайте правила чата", reply_markup=keyboard)
    return keyboard

@dp.callback_query_handler(text="help")
async def help_call(callback: types.CallbackQuery):
    await callback.message.answer('Тут тект, ')

@dp.callback_query_handler(text="pravila")
async def priglashaem_call(callback: types.CallbackQuery):
    await callback.message.answer("Тут правила чата")
    await callback.answer()


Это 2 клавиатура
markup = types.InlineKeyboardMarkup(row_width=2)
item1 = types.InlineKeyboardButton(" Правила Чата", callback_data='pravila')
item2 = types.InlineKeyboardButton("Помощь", callback_data='help')
markup.add(item1, item2)

# /start command
@dp.message_handler(commands=['start', 'help'])
async def send_welcome(message: types.Message):
  await bot.send_message(message.chat.id, "Здравствуйте, {0.first_name}!\nНажмите кнопку - <b>Правила Чата или помощь</b>.".format(message.from_user, bot.get_me()),
    parse_mode='html', reply_markup=markup)

@dp.callback_query_handler(text="help")
async def help_call(callback: types.CallbackQuery):
    await callback.message.answer('Тут тект, ')

@dp.callback_query_handler(text="pravila")
async def priglashaem_call(callback: types.CallbackQuery):
    await callback.message.answer("Тут правила чата")
    await callback.answer()


Нашел в нете, вот такой код, рабочий, но не получается, объединить со свой клавиатурой.

btn_send_delete = InlineKeyboardButton('Удалить', callback_data='message_delete')
btn_send_markup = InlineKeyboardMarkup().add(btn_send_delete)

@dp.message_handler(commands='start')
async def del_mes(message: types.Message):
    await bot.send_message(message.chat.id, 'test', reply_markup=btn_send_markup)

@dp.callback_query_handler(lambda c: c.data == 'message_delete')
async def send_msg_to_user(callback_query: types.CallbackQuery):
    await callback_query.answer('Удалено')
    await bot.delete_message(callback_query.message.chat.id, callback_query.message.message_id)
  • Вопрос задан
  • 716 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Как вариант запоминаете сообщение которое с клавиатурой и его id, через 2 минуты редактируете через editMessageText, там указываете id, текст сообщения, но не указываете клавиатуру, она уберется
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽