Как отредактировать отправленное ботом сообщение в aiogram
Есть код с помощью которого бот отправляет фото пользователю вместе с подписью и Inline клавиатурой, после необходимо изменить в ранее отправленном сообщении Inline клавиатуру и подпись, как это можно сделать?
Код с помощью которого отправляю фото пользователям:
x = await bot.send_photo(
chat_id=userId,
photo=image,
caption=message_text,
reply_markup=keyboard,
parse_mode='MarkdownV2'
)
Код с помощью которого пытаюсь изменить подпись и клавиатуру ранее отправленного сообщения:
x = await bot.edit_message_media(
media=image,
chat_id=call.message.chat.id,
message_id=lastBotWordMessageId,
caption=answerCheckMessage,
reply_markup=answerCheckKeyboard
)
Также хотел бы, чтобы вы отправили пример кода по изменению простого сообщения без фото, но с подписью и Inline клавиатурой.
Ответы (2 шт):
Чтобы отредактировать подпись и Inline клавиатуру под фото:
x = await bot.edit_message_caption(
chat_id=call.message.chat.id,
message_id=lastBotWordMessageId,
caption=answerCheckMessage,
reply_markup=answerCheckKeyboard
)
Для изменения caption Вы можете передать в Ваш InputMedia объект параметр caption. Вот Вам небольшой пример:
@dp.message_handler(commands=["photo"])
async def photo(message: Message):
file_path = "files/foods/borsch.jpg"
reply_markup = InlineKeyboardMarkup().add(
InlineKeyboardButton(text="I want a new photo!", callback_data="update_photo")
)
file = InputFile(file_path)
await bot.send_photo(
message.chat.id,
photo=file,
reply_markup=reply_markup,
caption="Test caption!",
)
@dp.callback_query_handler(text="update_photo")
async def photo_update(query: CallbackQuery):
file_path = "files/foods/pelmeni.png"
reply_markup = InlineKeyboardMarkup().add(
InlineKeyboardButton(text="Updated button", callback_data="dont_click_me")
)
file = InputMedia(media=InputFile(file_path), caption="Updated caption :)")
await query.message.edit_media(file, reply_markup=reply_markup)
Сообщение при вызове команды:

