Skip to main content

Редактирование

Бот может редактировать свои сообщения (или чужие, если он админ с правом edit).

editMessageText

POST /editMessageText
{
"chat_id": 12345,
"message_id": 42,
"text": "Обновлённый текст",
"parse_mode": "HTML"
}

Опционально reply_markup — пересоздать inline-клавиатуру.

editMessageCaption

Меняет только подпись медиа:

{
"chat_id": 12345,
"message_id": 42,
"caption": "Новая подпись",
"parse_mode": "MarkdownV2"
}

editMessageMedia

Полностью заменяет медиа (фото на видео и т.д.):

{
"chat_id": 12345,
"message_id": 42,
"media": {
"type": "photo",
"media": "https://example.com/new.jpg",
"caption": "Обновили картинку"
}
}

editMessageReplyMarkup

Меняет только кнопки, текст остаётся:

{
"chat_id": 12345,
"message_id": 42,
"reply_markup": {
"inline_keyboard": [[{"text": "Готово ✓", "callback_data": "done"}]]
}
}

Streaming-ответы (live edit)

Для AI-ботов: первый chunk через sendMessage, дальше — editMessageText с тем же message_id. Юзер видит, как ответ «допечатывается».

msg = bot.send_message(chat_id, '⏳ Думаю...')
for chunk in stream_response():
accumulated += chunk
bot.edit_message_text(
chat_id=chat_id,
message_id=msg.message_id,
text=accumulated
)
await asyncio.sleep(0.5) # rate limit

⚠️ Не редактируйте чаще 1 раза в секунду на сообщение — ловите 429.

Ограничения

  • Нельзя менять тип сообщения (text → photo).
  • Нельзя редактировать чужие сообщения без прав админа.
  • Нельзя редактировать сообщения старше 48 часов (ограничение защиты).