Как избавиться от инлайн клавиатуры для всех пользователей в aiogram?

Как удалить кнопку у всех администраторов, чтобы у них было только одно нажатие, после принятия заявки и добавления строки "отредактировал модератор id модератора" к существующему сообщению?
  • 12 июня 2024 г. 22:31
Ответы на вопрос 2
Для этого вы можете использовать метод `bot.edit_message_text()` для изменения текста сообщения после принятия заявки и добавления строки "отредактировал модератор id модератора". 

Пример кода:

```python
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.types import ReplyKeyboardRemove

# Инициализация бота
bot = Bot(token="your_token")
dp = Dispatcher(bot)

# Обработчик команды
@dp.message_handler(commands=["start"])
async def start_command(message: types.Message):
    # Отправляем сообщение с клавиатурой
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(types.InlineKeyboardButton(text="Нажмите меня", callback_data="press_me"))

    await message.answer("Нажмите кнопку", reply_markup=keyboard)

# Обработчик нажатия на кнопку
@dp.callback_query_handler(text="press_me")
async def press_me_callback(query: types.CallbackQuery):
    # Удаляем клавиатуру у пользователя
    await bot.edit_message_text(chat_id=query.message.chat.id, message_id=query.message.message_id, text="Клавиатура удалена", reply_markup=ReplyKeyboardRemove())

    # Добавляем строку отредактировал модератор
    await bot.edit_message_text(chat_id=query.message.chat.id, message_id=query.message.message_id, text=f"{query.message.text}\nотредактировал модератор {admin_id}")

# Запуск бота
if __name__ == "__main__":
    import asyncio
    loop = asyncio.get_event_loop()
    loop.create_task(dp.start_polling())
    loop.run_forever()
```

Этот код удаляет инлайн клавиатуру у пользователя после нажатия на кнопку и добавляет строку "отредактировал модератор" с ID модератора к существующему сообщению. Для этого используется метод `bot.edit_message_text()` дважды - первый раз для удаления клавиатуры и второй раз для добавления строки.

Пожалуйста, замените `admin_id` на реальный ID модератора и `your_token` на ваш токен бота.
bot.send_message 
Возвращает id сообщения. Нужно все эти id сохранить, потом в цикле пройтись по ним и отредактировать все сообщения
Похожие вопросы