Боты и автоматизация2026-08-198 минРедакция Submarine School

Как сделать, чтобы бот пересылал сообщения в Telegram

Как сделать, чтобы бот пересылал сообщения в Telegram

Чтобы бот пересылал сообщения в Telegram, он должен получить входящее обновление, проверить источник и вызвать forwardMessage или copyMessage для разрешённого чата. Первый метод сохраняет ссылку на исходное сообщение, второй создаёт копию без неё. Сначала соберите маршрут для одного тестового сообщения, затем добавляйте фильтры, журнал и защиту от повторов.

Выберите пересылку или копирование

Официальный Bot API определяет forwardMessage как пересылку сообщения с сохранением происхождения. Служебные сообщения и защищённый контент переслать нельзя. Метод copyMessage создаёт копию без ссылки на оригинал и также имеет ограничения по типам сообщений. Актуальные параметры перечислены в документации Telegram Bot API.

Правило маршрутизации: сначала белый список источников и получателей, потом действие. Бот не должен пересылать любой входящий текст в любой переданный chat_id.

Карта результата

  • Исходное условие: бот создан, токен хранится только в секретах, известны исходный и целевой чаты.
  • Результат: разрешённое сообщение один раз появляется в целевом чате.
  • Проверка: тесты для текста, фото, защищённого сообщения и повтора update_id.
  • Сбои: нет прав в чате, неверный chat_id, webhook не отвечает, повторная доставка.
  • Ограничение: бот видит только доступные ему сообщения и не обходит защиту контента.

Бот приносит пользу, когда он работает, а не когда про него прочитали. На бесплатном эфире показывают, как собрать и запустить бота с помощью ИИ.

Посмотреть запуск бота

Получите обновления одним способом

Telegram поддерживает getUpdates и webhook, но одновременно они не работают. В разделе Getting updates указано, что входящие обновления хранятся ограниченное время, а getUpdates нельзя использовать при активном webhook. Для рабочего бота удобен HTTPS webhook с секретным заголовком, для первого локального теста можно применить long polling.

  1. Добавьте бота в исходный чат и выдайте только необходимые права.
  2. Получите тестовое обновление и запишите chat_id без публикации токена.
  3. Задайте белый список исходных chat_id и один целевой chat_id в конфигурации.
  4. Выберите forwardMessage или copyMessage по требованию к происхождению.
  5. Сохраните обработанный update_id до подтверждения успешной доставки.
  6. Проверьте код ответа Bot API и запишите очищенное описание ошибки.
  7. Повторите тест с запрещённым источником и убедитесь, что пересылки нет.

По теме: Как сделать приветствие в боте Telegram в 2026

Минимальный безопасный пример

if update.update_id in processed:
    return
msg = update.message
if msg.chat.id not in ALLOWED_SOURCE_IDS:
    return
result = bot.forward_message(
    chat_id=TARGET_CHAT_ID,
    from_chat_id=msg.chat.id,
    message_id=msg.message_id,
 )
if result:
    processed.add(update.update_id)

Пример показывает порядок, а не готовую библиотеку: сначала дедупликация и проверка источника, затем отправка. processed должен храниться устойчиво, если процесс перезапускается. Не отмечайте update_id завершённым до успешного ответа, иначе временный сетевой сбой потеряет сообщение. Но и не повторяйте бесконечно ошибки доступа, отправляйте их в отдельный журнал.

Бот перестаёт быть игрушкой, когда берёт на себя рутину: отвечает, записывает, напоминает. На бесплатном вебинаре по вайбкодингу собирают такого помощника с помощью ИИ и показывают, как подключить его к своим задачам. Без опыта в коде.

Отдать боту рутину

Права, privacy mode и тип чата

В личном чате бот получает сообщения, отправленные ему. В группе доступ зависит от роли и настроек privacy mode. Не отключайте privacy mode просто ради удобства, если бот должен реагировать только на команды. Для канала бот обычно должен быть администратором с нужными правами. Проверяйте точный сценарий отдельным тестовым чатом, не рабочей группой.

По теме: Как сделать бота-предложку в Telegram: схема и проверка 2026

Диагностика по коду ошибки

  • 400 Bad Request: проверьте chat_id, message_id, тип сообщения и параметры метода.
  • 403 Forbidden: бот не состоит в чате, заблокирован или не имеет нужного права.
  • Сообщение приходит дважды: update_id отмечается слишком поздно или webhook повторяет запрос после неуспешного HTTP-ответа.
  • Текст приходит, фото нет: обработчик читает только поле text или выбранный тип нельзя переслать.
  • Защищённый материал не пересылается: это ожидаемое ограничение Bot API, не обходите его.

Если бот пока не получает входящие сообщения, сначала пройдите диагностику обновлений Telegram. Создание и токен разобраны в гайде по первому Telegram-боту. Для маршрута заявка плюс оператор полезна архитектура бота поддержки.

Защитите данные и журнал

Не пишите в лог полный текст сообщений, если для диагностики достаточно update_id, chat_id и кода результата. Ограничьте срок хранения и доступ к журналу. Токен бота держите в переменной окружения или хранилище секретов, не в клиентском JavaScript и не в репозитории. При утечке перевыпустите токен через BotFather и остановите старый маршрут.

По теме: Как сделать оплату в боте: безопасная схема и проверка в 2026

Когда способ не подходит

Прямая пересылка не подходит, если сообщение нужно согласовать, обезличить или классифицировать перед отправкой. Тогда сохраняйте заявку в очереди, показывайте оператору предпросмотр и отправляйте только после решения. Для больших потоков добавьте ограничение скорости и очередь, но не включайте массовую рассылку без согласия получателей.

Частые вопросы

Почему бот не пересылает из группы?

Проверьте, получает ли он update, разрешён ли источник и хватает ли прав. Сначала смотрите вход, затем вызов метода.

Чем copyMessage отличается от forwardMessage?

Копия не содержит ссылки на исходное сообщение. Ограничения поддерживаемых типов у методов различаются.

Как избежать дублей?

Храните обработанные update_id и возвращайте webhook успешный HTTP-ответ только после управляемой обработки.

На бесплатном вебинаре по вайбкодингу вы соберёте логику бота, настроите проверяемый маршрут сообщений и научитесь находить сбой по этапам.

Записаться на вебинар
Разборы, кейсы и фишки вайбкодинга каждую неделю в телеграм-канале «Яков вайбкодит».
Первый проект с ИИ: живой разбор, бесплатно Занять место