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

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

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 23:39
3000 руб./за проект
30 апр. 2024, в 23:32
1500 руб./за проект
30 апр. 2024, в 22:44
500 руб./в час