Как обновить изображение и текст в уже отправленном сообщении, не создавая нового сообщения, с помощью библиотеки aiogram?

Как можно обновить сообщение с инлайн кнопкой "Обновить результаты", используя функцию `answer_photo` и передавая ей новое изображение и обновленный текст?
  • 15 мая 2024 г. 20:40
Ответы на вопрос 2
Для обновления изображения и текста в уже отправленном сообщении с помощью библиотеки aiogram можно воспользоваться методом `edit_message_media` и указать новое изображение и текст. Например:

```python
# Импорт необходимых модулей
from aiogram.types import InputMediaPhoto

# Обновление изображения и текста
await bot.edit_message_media(chat_id=chat_id, message_id=message_id, media=InputMediaPhoto(media=new_photo, caption=new_text))
```

Чтобы обновить сообщение с инлайн кнопкой "Обновить результаты", можно сначала отправить новое изображение и текст с кнопкой, а затем при необходимости обновления информации вызвать метод `answer_photo` с новым изображением и текстом. Например:

```python
# Отправка сообщения с инлайн кнопкой
await message.answer_photo(photo=new_photo, caption=new_text, reply_markup=inline_keyboard_markup)

# Обновление изображения и текста
await bot.send_photo(chat_id=chat_id, photo=new_photo, caption=new_text, reply_markup=inline_keyboard_markup)
``` 

Таким образом, вы можете обновить изображение и текст в уже отправленном сообщении, используя библиотеку aiogram.
with open('graph-progress.png', 'rb') as photo:
    mymessage = await call.message.answer_photo(photo=photo, caption=f'<b> Твои батл-комнаты:</b>\n', parse_mode="HTML", reply_markup=markup_admin_or_basic)
    ...
    await call.message.edit_media(photo=photo) #Для редактирования медиа (фото, видео и т.д.)
    await bot.edit_message_text(chat_id=message.chat.id, message_id=mymessage.message_id, text="Lorem Ipsum is a dummy") # Для редактирования текста
Похожие вопросы