EnotPRO Logo EnotPRO

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: 12345
  • Caption: Новое описание фото

Пример 3: Замена медиафайла

Реакция EditMessage:

  • Режим: Media
  • chat_id: ${chat.id}
  • message_id: 12345
  • Media: !{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 после отправки:

  1. SendMessage → Текст: Ваш заказ принят
  2. (В следующей реакции) SetVarCloud → Значение: ${response.result.message_id}

🔗 Связанные реакции

🔗 Связанные разделы

  • Макрос varcloud — для динамических значений в тексте
  • Business Bot — работа с бизнес-подключениями

🔗 Ссылка на официальную документацию

editMessageText — Telegram Bot API editMessageCaption — Telegram Bot API editMessageMedia — Telegram Bot API

© 2025 EnotPRO. Все права защищены.