@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)
  • Вопрос задан
  • 704 просмотра
Пригласить эксперта
Ответы на вопрос 1
Как вариант запоминаете сообщение которое с клавиатурой и его id, через 2 минуты редактируете через editMessageText, там указываете id, текст сообщения, но не указываете клавиатуру, она уберется
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект