Telegram Post Editor — Mini App

Создавайте красиво отформатированные посты Telegram прямо внутри Telegram. Точное превью, черновики, синхронизируемые через Telegram CloudStorage, и публикация одним нажатием — каждый элемент форматирования (жирный, курсив, ссылки, цитаты) сохраняется.

Mini App — лёгкий компаньон для десктопного Telegram Post Editor. Тот же движок форматирования, то же превью, но доступно с любого устройства, где есть Telegram.


Как открыть

Mini App живёт внутри @tgpe_editor_bot — откройте бота в Telegram и отправьте /app, чтобы запустить Mini App. Работает на iOS, Android, Telegram Desktop и Telegram Web.

После нажатия Start отправьте /app, чтобы запустить Mini App.

Два способа запуска

  1. Открыть бота — нажмите @tgpe_editor_bot, нажмите Start, затем отправьте /app
  2. Меню команд бота/start (приветствие), /help (полный список функций), /app (запуск Mini App)

Нажмите /start перед первой загрузкой медиа

Telegram требует, чтобы у бота был открытый чат с вами — иначе он не сможет временно сохранить загруженный файл. Если пропустить /start, первая загрузка фото или аудио завершится ошибкой «Tap Start in @tgpe_editor_bot first, then try again.» Откройте чат с ботом, нажмите Start и повторите попытку.


Первый запуск

При открытии Mini App вы увидите приветственный экран с вашим именем из Telegram, короткий слоган и ссылку «Получить Telegram Post Editor для десктопа» в правом верхнем углу.

Тема и язык — автоматически

  • Тема — берётся из Telegram.WebApp.themeParams и переносится в CSS-переменные. Переключите тему в Telegram — Mini App обновится мгновенно.
  • Язык — определяется по language_code из Telegram. Русский для ru*, английский — в остальных случаях. Сейчас поддерживаются только английский и русский.
  • Безопасные отступы — учитывается челка / Dynamic Island на iOS.

Раскладка

Размер экранаРаскладка
Узкий (< 768px)Две вкладки: Редактор / Превью. Состояние редактора сохраняется при переключении.
Широкий (≥ 768px)Бок о бок: редактор слева (60%), превью справа (40%).

Форматирование

Тулбар поддерживает те типы форматирования, которые Telegram действительно отображает.

КнопкаДействиеСочетание
BЖирныйCmd/Ctrl + B
IКурсивCmd/Ctrl + I
UПодчёркнутыйCmd/Ctrl + U
SЗачёркнутый
СсылкаВставка / переключение ссылкиCmd/Ctrl + K
ФотоВыбор фото или видео(файловый пикер)
АудиоВыбор аудиофайла(файловый пикер)
⋯ ЕщёСписки, цитата, блок кода, удалить ссылку, очистить форматирование

Поддерживаемые узлы: жирный, курсив, подчёркнутый, зачёркнутый, ссылка, абзац, заголовок, нумерованный и маркированный списки, цитата, блок кода.

Отличия от десктопа: нет галереи в тулбаре (отдельные кнопки «Фото» и «Аудио»), нет управления каналами, упрощённый диалог ссылки, пока нет UI для спойлера и пикера эмодзи.

Сочетания клавиш

СочетаниеДействие
Cmd/Ctrl + BЖирный
Cmd/Ctrl + IКурсив
Cmd/Ctrl + UПодчёркнутый
Cmd/Ctrl + KДиалог ссылки
EnterНовая строка
EscapeЗакрыть модалку / отменить переименование
TabПереход по фокусу
SpaceАктивация выбранной кнопки

Медиа

Нажмите Фото или Аудио — откроется системный пикер.

Лимиты

ТипФорматыМаксимальный размер
ФотоJPEG, PNG, WebP, GIF10 МБ
ВидеоMP4, MOV, WebM50 МБ
АудиоMP3, M4A, AAC50 МБ

Сейчас — один медиафайл на пост. Повторный выбор заменяет предыдущий. Альбомы в планах.

Процесс загрузки

  1. Выбираете файл — сразу появляется локальный 256-пиксельный thumbnail
  2. Mini App в фоне загружает файл боту, в слоте крутится спиннер
  3. Бот возвращает file_id и серверный thumbnail
  4. В слоте отображается финальное превью; основная кнопка переключается на «Поделиться в Telegram»
  5. Временные ошибки автоматически повторяются до трёх раз с экспоненциальной задержкой (500 мс → 1 с → 2 с + jitter)

Особенности платформ

ПлатформаПикерЗаметка
iOSDocument picker (Фото / Файлы / iCloud)blob:-URL работают надёжно
AndroidСистемный файловый пикерblob:-URL ненадёжны в WebView — используются data:-URL и серверный thumbnail-fallback при сбое createImageBitmap
Telegram DesktopСистемное диалоговое окноНаследует тему десктопа
Telegram WebHTML5-инпутТолько localStorage / IndexedDB — без CloudStorage-синхронизации

Превью и лимиты длины

Превью показывает Telegram-стилизованный пузырёк с отформатированным текстом плюс прикреплённое медиа (если есть) и опциональную карточку предпросмотра ссылки.

Пороги длины

РежимМаксимум символов
Только текст4096
С медиа (подпись)1024

Счётчик символов обновляется с задержкой 120 мс (дружелюбно к Android). Цвет меняется на 80%, 95% и 100%: синий → жёлтый → красный, и жирный красный после превышения. При прикреплении/удалении медиа режим подписи переключается автоматически.


Публикация

Большая кнопка внизу — триггер публикации. Активна, когда пост содержит хотя бы один символ или прикреплённое медиа; недоступна во время загрузки или при превышении лимита.

Современный Telegram (Bot API ≥ 8.0)

  1. Нажмите «Поделиться в Telegram»
  2. Mini App дожидается завершения загрузки и просит бэкенд подготовить инлайн-сообщение
  3. Бэкенд формирует сообщение и возвращает prepared_message_id, действительный ~5 минут
  4. Mini App вызывает Telegram.WebApp.shareMessage(prepared_message_id)
  5. Telegram открывает системный шеринг — выберите чат или канал
  6. Telegram отправляет сообщение; Mini App показывает «Опубликовано! Сообщение в пути.»

Старый Telegram (без shareMessage)

Кнопка переключается на «Скопировать как MarkdownV2». Mini App сериализует пост в Telegram-Markdown, копирует в буфер обмена и показывает тост: «Скопировано! Вставьте в любой чат Telegram.»

Метка «via @bot»

Mini App публикует через инлайн-механизм Telegram, поэтому в постах канала появляется подпись «via @tgpe_editor_bot». Чтобы публиковать от имени канала без метки, используйте десктопное приложение с ботом, добавленным как администратор канала (право Post Messages).


Черновики

Автосохранение

Каждое нажатие клавиши (с дебаунсом) сохраняет:

  1. localStorage.tgpe:current — локальный кэш для восстановления
  2. Telegram CloudStorage под id активного черновика (если CloudStorage доступен)

При перезагрузке Mini App восстанавливает в порядке: активный черновик из CloudStorage → бэкап в localStorage → пустой редактор.

Экран черновиков

Иконка папки в шапке открывает список черновиков: заголовок, дата изменения, превью первой строки. Нажмите, чтобы открыть, карандаш — чтобы переименовать (до 60 символов; Enter — сохранить, Esc — отменить), корзина — чтобы удалить (с подтверждением).

Лимиты хранилища

ХранилищеЛимит
localStorage~5–10 МБ (браузер) — около 50 КБ на черновик
Telegram CloudStorage1024 ключа на пользователя (ограничение Telegram) — каждый черновик = один ключ

Оффлайн

Черновики работают полностью оффлайн — изменения сохраняются локально. Публикация требует соединения и показывает «Не удалось связаться с сервером.» до восстановления связи.

CloudStorage недоступен

В Telegram Web и очень старых клиентах CloudStorage не поддерживается. Mini App покажет баннер — черновики сохраняются локально, но не синхронизируются между устройствами.


Публикация в каналы

Управление каналами — в десктопном приложении. Mini App опирается на системный шеринг Telegram, который позволяет выбрать любой чат или канал, где у вас есть права на публикацию.

Для чистых постов в канал без метки «via @tgpe_editor_bot» используйте десктопное приложение с ботом, добавленным как администратор канала с правом Post Messages.


Ошибки и пустые состояния

Ошибки загрузки

ОшибкаСообщениеДействие
Пустой файл«Файл пустой.»Выберите другой
Слишком большой«Файл слишком большой. Лимит N МБ.»Сожмите и попробуйте ещё раз
Неподдерживаемый MIME«Этот тип файла не поддерживается.»Используйте фото / видео / аудио
Чат с ботом недоступен«Tap Start in @tgpe_editor_bot first, then try again.»Откройте чат с ботом, нажмите Start
Сеть / 5xx(автоматически 3 попытки, затем «Загрузка не удалась»)Подождите или повторите вручную

Ошибки публикации

КодСообщение
empty_postНапишите что-нибудь перед отправкой.
too_longПост слишком длинный. Telegram допускает до 4096 символов.
invalid_stateЧто-то не так с этим черновиком. Скопируйте текст вручную.
telegram_apiУ Telegram временные проблемы. Попробуйте ещё раз.
auth_required / auth_invalidНе удалось аутентифицироваться. Перезапустите Mini App.
network_errorНе удалось связаться с сервером. Проверьте соединение.
unsupportedОбновите Telegram, чтобы публиковать напрямую. Или используйте «Скопировать как MarkdownV2».

Решение проблем

ПроблемаРешение
«Mini App is not running in Telegram»Откройте @tgpe_editor_bot изнутри Telegram и отправьте /app
Черновики не синхронизируются между устройствамиCloudStorage недоступен в этом клиенте (Web / старый клиент). Используйте десктопное приложение для синхронизации.
При загрузке медиа: «Tap Start in @bot first»Откройте чат с ботом, нажмите Start, затем повторите загрузку
На Android фото пустыеСработает серверный thumbnail-fallback. Если нет — пришлите лог консоли в поддержку.
«Пост слишком длинный» при < 4096 символовПрикреплено медиа — лимит подписи 1024. Удалите медиа или сократите подпись.
Не могу найти чат в шеринг-листеВведите имя чата в поиск шеринг-листа Telegram.
Метка «via @bot» в постах каналаЭто ожидаемое поведение Mini App. Для постов от имени канала используйте десктопное приложение с ботом-админом.

FAQ

Где работает Mini App?

Внутри Telegram на iOS, Android, Telegram Desktop (macOS/Windows/Linux) и Telegram Web. Откройте @tgpe_editor_bot и отправьте /app, чтобы запустить.

Нужно ли что-то устанавливать?

Нет. Mini App открывается прямо в Telegram. Также есть десктопная версия для продвинутых сценариев — управление каналами, интеграция с MCP, серверный режим.

Почему у поста в канале метка «via @bot»?

Mini App публикует посты через инлайн-механизм Telegram, поэтому в подписи появляется «via @bot». Чтобы публиковать от имени канала без метки, используйте десктопное приложение с ботом, добавленным как администратор канала.

Синхронизируются ли черновики между устройствами?

Да — черновики сохраняются в Telegram CloudStorage и восстанавливаются при открытии Mini App на другом устройстве. В Telegram Web и очень старых клиентах без CloudStorage используется локальное хранилище браузера.

Какой лимит по символам?

4096 символов для текстовых постов. С прикреплённым фото или видео лимит подписи — 1024.

Есть ли спойлер или пикер эмодзи?

Пока нет. Спойлер существует в editor-core, но не выведен в тулбар Mini App. Встроенного пикера эмодзи нет — используйте системный пикер Telegram или вставку из ОС.

Можно ли отправлять альбомы (несколько фото)?

Пока нет, один медиафайл на пост. Альбомы в планах.


Создано по методологии VibeCoder Heretic — автономные ИИ-агенты делают тяжёлую работу, разработчик фокусируется на главном.