EditMessage
EditMessage — редактирует ранее отправленное ботом сообщение.
📝 Назначение
Используется для:
- Обновления текста сообщения (например, статус заказа, счётчик)
- Изменения подписи к медиафайлу
- Замены медиафайла на другой
- Обновления кнопок меню (совместно с
ShowMenu)
🔴 Важно: Редактировать можно только сообщения, отправленные самим ботом. Сообщения пользователей изменить нельзя. После редактирования Telegram помечает сообщение пометкой «edited».
⚙️ Основные параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer/String | ✅ Да | ID чата или @username канала |
| message_id | Integer | ✅ Да | ID сообщения для редактирования |
| business_id | String | ❌ Нет | ID бизнес-подключения (для бизнес-аккаунтов) |
| Текст | String | ❌ Нет* | Новый текст сообщения (1–4096 символов) |
** Должен быть указан хотя бы один тип редактирования:
Текст,CaptionилиMedia.*
📝 Типы редактирования
Платформа предлагает три режима редактирования. Выберите нужный переключатель:
Режим «Текст»
Редактирует текстовое сообщение или текст в сообщении с медиа.
| Параметр | Тип | Описание |
|---|---|---|
| Текст | String | Новый текст сообщения |
| Web-preview | Блок | Настройки превью ссылок |
Режим «Caption»
Редактирует только подпись к медиафайлу (сам файл не меняется).
| Параметр | Тип | Описание |
|---|---|---|
| Caption | String | Новая подпись к медиа (1–4096 символов) |
| Web-preview | Блок | Настройки превью ссылок |
Режим «Media»
Заменяет медиафайл и (опционально) его подпись.
| Параметр | Тип | Описание |
|---|---|---|
| Media | Object | Новый медиа-файл (через макрос !{media}) |
| Caption | String | Новая подпись к медиа (опционально) |
⚠️ Важно: Нельзя заменить текстовое сообщение на медиа и наоборот. Тип сообщения должен сохраняться.
🔗 Web-preview
Настройка предпросмотра ссылок в редактируемом тексте.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Включено | Boolean | ❌ Нет | Включить/выключить отображение превью ссылок |
| Ссылка | String | ❌ Нет | Конкретная ссылка для превью (если не указана — берётся первая ссылка в тексте) |
| Расположение | Выбор | ❌ Нет | Сверху — превью над текстом, Снизу — под текстом |
| Размер | Выбор | ❌ Нет | Большое медиа — стандартный размер, Маленькое медиа — компактный |
📊 Правила комбинирования
Платформа автоматически определяет, что именно вы хотите отредактировать:
| Выбранный режим | Передано | Что будет отредактировано |
|---|---|---|
| Текст | Текст |
Текст текстового сообщения |
| Caption | Caption |
Только подпись к существующему медиа |
| Media | Media (+ опционально Caption) |
Медиа-файл и его подпись |
💡 Совет: Если нужно изменить и текст, и медиа — используйте два отдельных вызова
EditMessageили отправьте новое сообщение вместо редактирования.
🔄 Дополнительные опции
Хотя на скриншотах не показаны, EditMessage поддерживает те же опции, что и SendMessage:
| Параметр | Тип | Описание |
|---|---|---|
| disable_notification | Boolean | Не уведомлять участников об изменении |
| protect_content | Boolean | Запретить пересылку отредактированного сообщения |
💡 Совет:
disable_notificationполезно для фоновых обновлений (например, счётчика), чтобы не спамить уведомлениями.
🧪 Примеры
Пример 1: Обновление текста (простой счётчик)
Сценарий: Пользователь нажал кнопку, нужно обновить счётчик в сообщении.
Реакция EditMessage:
- Режим:
Текст chat_id:${chat.id}message_id:${message.message_id}(сообщения, где кнопка)Текст:Нажатий: ${!{varcloud|name: clicks|default: 0}}
Пример 2: Изменение подписи к фото
Реакция EditMessage:
- Режим:
Caption chat_id:${chat.id}message_id:12345Caption:Новое описание фото
Пример 3: Замена медиафайла
Реакция EditMessage:
- Режим:
Media chat_id:${chat.id}message_id:12345Media:!{media|id: AgACAgIAAxkBAAI...; type: photo}Caption:Обновлённое фото (опционально)
Пример 4: Редактирование сообщения в бизнес-аккаунте
Реакция EditMessage:
chat_id:${chat.id}message_id:${message.message_id}business_id:${update.business_message.business_connection_id}Текст:Новый текст от имени бизнеса
Пример 5: Редактирование с отключением уведомлений
Сценарий: Фоновое обновление статуса, не нужно дёргать пользователя.
Реакция EditMessage:
- Режим:
Текст chat_id:${chat.id}message_id:12345Текст:Статус: завершеноdisable_notification:true
🔍 Как получить message_id
message_id можно получить из разных источников:
| Источник | Переменная | Когда использовать |
|---|---|---|
| Сообщение пользователя | ${update.message.message_id} |
При ответе на сообщение пользователя |
| Ответ бота на SendMessage | ${response.result.message_id} |
Сразу после отправки сообщения |
| Любое сообщение в чате | Из логов или переменной | При сохранении ID в переменную |
Пример сохранения ID после отправки:
SendMessage→ Текст:Ваш заказ принят- (В следующей реакции)
SetVarCloud→ Значение:${response.result.message_id}
🔗 Связанные реакции
- SendMessage — отправить новое сообщение
- ShowMenu — отправить/обновить меню
- DeleteMessage — удалить сообщение
- Макрос media — для отправки медиа
🔗 Связанные разделы
- Макрос varcloud — для динамических значений в тексте
- Business Bot — работа с бизнес-подключениями
🔗 Ссылка на официальную документацию
editMessageText — Telegram Bot API editMessageCaption — Telegram Bot API editMessageMedia — Telegram Bot API