Перейти к основному содержимому
Инструкции

Автопостинг в Telegram без метки «Переслано»: пошаговый гайд

Также доступно на языках:ENRUUK
Опубликовано September 14, 20257 мин. чтения428 просмотров
Автопостинг в Telegram без метки «Переслано»: пошаговый гайд

Автопостинг в Telegram без метки «Переслано»: пошаговый гайд

Кратко. Серая плашка «Переслано от <Канал>» появляется тогда, когда вы вызываете forwardMessage из Bot API (или жмёте «Переслать» в интерфейсе). Чтобы сделать нативный репост без этой метки, сообщение нужно отправлять как новое — для этого в Bot API есть методы copyMessage / copyMessages, а в любом нормальном планировщике — соответствующий режим «нативного репоста». Ниже — почему появляется плашка, в чём разница между ботом и userbot, и четыре конкретных шага к чистому брендированному репосту.

Если не хочется возиться с API, Autogram даёт переключатель «Нативный репост» в один клик.

Почему появляется «Переслано от»

Фото: Rahul Shah на Pexels

Telegram трактует пересылку как часть идентичности сообщения: исходный автор зашит в его метаданные. По документации Bot API, каждый вызов forwardMessage возвращает сообщение с полем forward_origin. Именно это поле клиенты Telegram используют, чтобы дорисовать серую плашку над пузырём сообщения.

Сценариев, генерирующих метку, два:

  1. Пользователь (или ваш бот) жмёт «Переслать» в интерфейсе, либо код вызывает bot.forwardMessage(chat_id, from_chat_id, message_id).
  2. «Зеркальный» бот, клонирующий канал A → канал B через forwardMessage под капотом — стандартная реализация дешёвых агрегаторов.

В обоих случаях подписчики видят имя источника в каждом посте. Для брендовых каналов — агентств с кураторскими лентами, e-commerce, ретранслирующего поставки, медиа, гонящего ленту агентств — это размывает идентичность канала и приучает аудиторию кликать в источник вместо того, чтобы оставаться у вас.

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

Бот vs userbot — различие, о котором забывают

Перед шагами — одна базовая модель. У Telegram две поверхности автоматизации:

ПоверхностьЧто этоУбирает ли «Переслано»?Когда использовать
Bot API (BotFather)Отдельный аккаунт, управляемый через bot.token поверх HTTPSДа — через copyMessage (Bot API 5.0, декабрь 2020) / copyMessages (Bot API 7.0, декабрь 2023)99% легитимной автоматизации каналов
Userbot (TDLib / MTProto)Реальный аккаунт пользователя, управляемый API ID + API hashДа — но вы контролируете конверт сообщения, поэтому это тривиальноPower-пользователи, автоматизирующие свою активность

Userbot может постить «от себя» без плашки, но он входит как живой пользователь, его легко пометить как спам, и вы рискуете номером телефона. Для нормальных каналов правильный ответ — Bot API + copyMessage. Остальная инструкция предполагает именно этот путь; для масштаба полезно параллельно прочитать гид по массовой рассылке — там разобраны rate limits, в которые вы упрётесь, как только начнёте репостить пачками.

Что нужно перед началом

  • Telegram-бот от @BotFather и его BOT_TOKEN.
  • Бот добавлен в канал-приёмник как администратор с правом «Публиковать сообщения».
  • Числовые chat_id канала-источника (отрицательное целое, например -1001234567890) и канала-приёмника.
  • Либо Python с python-telegram-bot >= 20.0 для кода, либо планировщик с режимом «нативного репоста» (Autogram, BrandGhost, ряд SMM-панелей) — для no-code пути.

Шаг 1 — получите message_id сообщения в источнике

Чтобы переслать конкретное сообщение, нужен его числовой message_id в исходном чате. Три способа:

  • Вручную. В Telegram Desktop или Web: правый клик по сообщению → «Копировать ссылку». URL заканчивается на …/12345 — это и есть message_id.
  • Webhook. Если бот в канале-источнике, настройте вебхук на channel_post и собирайте update.channel_post.message_id по факту публикации.
  • Поллинг. bot.get_updates() возвращает те же события channel_post; складывайте message_id в очередь.

Сохраняйте оба значения — from_chat_id и message_id. copyMessage нуждается в обоих.

Шаг 2 — вызывайте copyMessage вместо forwardMessage

Фото: Tara Winstead на Pexels

В этом и весь фокус. copyMessage отправляет содержимое сообщения как новое сообщение авторства вашего бота — без forward_origin, без плашки, без атрибуции.

from telegram import Bot
import asyncio

BOT_TOKEN = "123456:ABC..."          # от BotFather
SRC_CHAT  = -1001234567890           # канал-источник
DST_CHAT  = -1009876543210           # канал-приёмник
SRC_MSG   = 12345                    # message_id из шага 1

async def repost_clean():
    bot = Bot(BOT_TOKEN)
    new_msg = await bot.copy_message(
        chat_id=DST_CHAT,
        from_chat_id=SRC_CHAT,
        message_id=SRC_MSG,
        # caption="Опциональный текст в голосе вашего канала",
        # parse_mode="MarkdownV2",
    )
    print("Опубликовано как message_id", new_msg.message_id)

asyncio.run(repost_clean())

Тот же запрос в HTTP:

curl -sS -X POST "https://api.telegram.org/bot${BOT_TOKEN}/copyMessage" \
  -H "Content-Type: application/json" \
  -d '{"chat_id": -1009876543210, "from_chat_id": -1001234567890, "message_id": 12345}'

Опциональный caption позволяет переписать текст в голосе вашего канала, оставив исходное медиа — полезно, если в подписи источника чужой бренд или CTA, который вы хотите заменить. При parse_mode: "MarkdownV2" не забудьте экранировать специальные символы.

Для медиа-альбомов (2–10 фото / видео в группе) используйте copyMessages с массивом message_ids — группировка сохраняется.

Шаг 3 — включите режим в планировщике (no-code путь)

Если не хочется поддерживать скрипт, у каждого современного планировщика есть переключатель режима постинга. Названия отличаются, вызов под капотом тот же — copyMessage:

ИнструментНазвание опцииПо умолчанию
Autogram«Native repost»включено
BrandGhost«Repost as own»выключено
ManyBot«Send as bot»всегда в стиле «не пересылать»
Postoplan«Republish»выключено

Выберите режим и сохраните автоматизацию — планировщик сделает остальное. Проверьте на тестовом канале перед боевым: бот, у которого молча отозвали права, не публикует ничего, а это заметить сложнее, чем лишнюю плашку.

Шаг 4 — проверьте на реальном устройстве

Фото: Zulfugar Karimov на Pexels

Откройте канал-приёмник в мобильном клиенте Telegram (десктоп рисует плашку немного иначе в ряде тем). Убедитесь, что:

  • Над сообщением нет «Переслано от».
  • Автор — ваш канал, не источник.
  • Тап по таймстемпу не открывает сообщение в канале-источнике.
  • Для медиа: файл загружен как свежий (имеет собственный file_id), а не CDN-ссылка на источник.

Если что-то всё ещё показывает атрибуцию источника — почти наверняка где-то в пайплайне вызывается forwardMessage. Перепроверьте настройки планировщика или код.

Частые ошибки

  • Вызвать forwardMessage и потом редактировать. Редактирование пересланного сообщения не убирает плашку — forward_origin неизменяемо.
  • Боту не дали права «Публиковать сообщения». copyMessage вернёт 403: Bot is not a member или 403: Not enough rights. Перевыпустите бота как админа канала.
  • Не экранированный MarkdownV2 при перезаписи подписи. Пост молча 400-ит, очередь встаёт. Правила экранирования ловят 9 из 10 первых интеграций.
  • Превышение лимита 30 сообщений/сек / 1 сообщение/сек на чат при репосте бэклога. Используйте copyMessages для альбомов и добавьте RetryAfter-aware задержку.
  • Репост чужого контента без разрешения. Без плашки атрибуция исчезает — это нормально для своего и лицензионного контента и не нормально для чужого. Храните source_url в БД и при необходимости показывайте его в подписи.
  • Путать «без плашки» с «без следа». Telegram не принуждает к атрибуции, но исходный message_id всё равно остаётся в логах источника, если оба бота на одной инфраструктуре. Не репостьте защищённый контент.

Похожие материалы

FAQ

Почему над постом моего бота появляется «Переслано от» вместо имени моего канала?

Потому что бот вызвал forwardMessage (или пользователь нажал «Переслать»). Оба генерируют сообщение с полем forward_origin, которое клиенты Telegram рисуют как серую плашку. Замените вызов на copyMessage — то же содержимое будет отправлено как новое сообщение авторства вашего бота.

В чём разница между forwardMessage и copyMessage в Telegram Bot API?

forwardMessage пересылает оригинал с сохранением атрибуции к источнику. copyMessage отправляет содержимое (текст, медиа, подписи) как новое сообщение авторства вашего бота, без ссылки на источник. Оба — задокументированные методы Bot API; copyMessage добавлен в Bot API 5.0 (декабрь 2020), а множественный вариант copyMessages появился позже в Bot API 7.0 (декабрь 2023).

Нужен ли userbot или MTProto, чтобы репостить без плашки «Переслано»?

Нет. Стандартный Bot API через copyMessage делает это с 2022 года. Userbot (TDLib, MTProto) тоже умеет, но требует реального номера телефона, попадает под антиспам и избыточен для нормальных каналов.

Можно ли копировать медиа-альбомы (несколько фото/видео) без плашки «Переслано»?

Да — используйте copyMessages с массивом message_ids исходного альбома. Группировка сохранится на стороне приёмника, плашки не будет.

Не нарушает ли убирание «Переслано» правила Telegram?

Нет. copyMessage — официальный метод Bot API, цель которого — создать репост без атрибуции. Что действительно нарушает правила (и авторское право) — это публикация чужого контента без разрешения. Храните журнал source_url для всего материала, который не принадлежит вам.

Сохраняются ли превью ссылок и inline-кнопки при копировании?

Подписи, форматирование и базовые медиа копируются как есть. Inline-клавиатуры по умолчанию не переносятся — передавайте их явно через параметр reply_markup в copyMessage. Превью ссылок генерируется клиентом-приёмником по URL, поэтому будет выглядеть так же, пока ссылка не меняется.

Итог

Публикации в Telegram в Autogram. Подключите первый канал и получите 7 дней доступа к Solo с AI-бюджетом $1. Банковская карта не нужна.

Изображения

#автоматизация telegram#telegram репост#переслано от#telegram bot api#copymessage#бренд канала

Подпишитесь на рассылку

Получайте последние советы по росту Telegram, стратегии автоматизации и обновления платформы прямо на почту.

Или подпишитесь на наш Telegram-канал