EnotPRO Logo EnotPRO

ForwardMessage

ForwardMessage — реакция пересылает сообщение в указанный чат или канал.

Назначение

Используется для пересылки существующих сообщений из одного чата в другой. Сообщение пересылается без изменений, сохраняется авторство и исходное форматирование.

⚙️ Параметры

Параметр Тип Обязательный Описание
chat_id Integer/String ✅ Да ID чата/канала, из которого необходимо переслать сообщение
from_chat_id Integer/String ✅ Да ID чата/канала, куда необходимо переслать сообщение
message_id Integer ✅ Да ID сообщения, которое необходимо переслать

⚠️ Важно: Не перепутайте параметры! from_chat_id — это чат-источник, chat_id — это чат-получатель.

⚙️ Опции

Параметр Тип Обязательный Описание
disable_notification Boolean ❌ Нет Отключение уведомления при отправке сообщения (беззвучно)
protect_content Boolean ❌ Нет Запрет копирования. Сообщение нельзя будет сохранить или переслать
message_thread_id Integer ❌ Нет ID темы форума (если чат-получатель — супергруппа с темами)

🔐 Требуемые права бота

Тип чата Требуемые права
Группа/супергруппа (источник) Бот должен быть участником чата
Канал (источник) Бот должен быть администратором канала
Группа/супергруппа (получатель) Бот должен быть участником чата и иметь право отправлять сообщения
Канал (получатель) Бот должен быть администратором канала

💡 Совет: Для пересылки из канала в канал бот должен быть администратором обоих каналов.

🧪 Примеры использования

Пример 1: Пересылка текущего сообщения в технический чат

Задача: Переслать каждое сообщение пользователя в технический чат администраторов.

Обработчик: Тип «Текст» (любое сообщение)

Реакция ForwardMessage:

  • from_chat_id: ${chat.id}
  • chat_id: -100123456789 (технический чат)
  • message_id: ${update.message.message_id}

Пример 2: Пересылка без уведомления

Задача: Переслать важное объявление без звукового оповещения.

Параметры ForwardMessage:

  • from_chat_id: -100987654321
  • chat_id: -100123456789
  • message_id: 42
  • disable_notification: true

Пример 3: Пересылка с защитой от копирования

Задача: Переслать конфиденциальное сообщение с защитой от пересылки.

Параметры ForwardMessage:

  • from_chat_id: ${chat.id}
  • chat_id: ${user.id} (личный чат)
  • message_id: ${update.message.message_id}
  • protect_content: true

Пример 4: Пересылка из канала по команде администратора

Задача: Администратор может переслать сообщение из канала по ID.

Обработчик: Команда /forward 42

Реакции:

  1. ForwardMessage
  • from_chat_id: @channel_news
  • chat_id: ${chat.id}
  • message_id: ${update.match.1}

Пример 5: Пересылка в тему форума

Задача: Переслать сообщение в конкретную тему форума.

Параметры ForwardMessage:

  • from_chat_id: ${chat.id}
  • chat_id: -100123456789 (группа-форум)
  • message_id: ${update.message.message_id}
  • message_thread_id: 42 (ID темы)

🔄 Особенности поведения

Ситуация Поведение
Сообщение не найдено Реакция вызовет ошибку
Нет прав на чтение сообщения Реакция вызовет ошибку
Нет прав на отправку в чат-получатель Реакция вызовет ошибку
Пересылка в тот же чат Работает (создаётся копия)
Пересылка за пределы лимитов Telegram может ограничить частоту пересылок

⚠️ Ограничения Telegram

Ограничение Значение
Пересылка из канала Бот должен быть администратором канала
Пересылка из приватного чата Бот должен быть участником чата
Защита от пересылки Если у исходного сообщения включена protect_content, переслать его нельзя
Частота пересылок Ограничение зависит от типа чата и нагрузки

⚠️ Частые ошибки и их решение

Ошибка 1: Перепутаны from_chat_id и chat_id

Причина: В параметрах указаны неверные чаты.

Решение: Убедитесь, что from_chat_id — это чат-источник, а chat_id — чат-получатель.

Ошибка 2: Нет прав на чтение сообщения

Причина: Бот не является администратором канала-источника или не участник группы-источника.

Решение: Добавьте бота в администраторы канала или сделайте участником группы.

Ошибка 3: Сообщение защищено от пересылки

Причина: В исходном сообщении включена опция protect_content.

Решение: Защиту нельзя обойти. Используйте другие методы (например, копирование текста через SendMessage).

Ошибка 4: Слишком много пересылок за короткое время

Причина: Превышены лимиты Telegram.

Решение: Добавьте задержку между пересылками или используйте отложенные действия.

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

Реакция Назначение
SendMessage Отправить новое сообщение
CopyMessage Копировать сообщение с изменением текста
DeleteMessage Удалить сообщение

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

forwardMessage — Telegram Bot API

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