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:-100987654321chat_id:-100123456789message_id:42disable_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
Реакции:
ForwardMessage→
from_chat_id:@channel_newschat_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 | Удалить сообщение |