Всем привет!
Telegram меня наконец-то услышал! Ну ладно, не только меня, а может, и не слышал вовсе, но недавний апдейт клиента и вчерашнее обновление Telegram Bot API 10.1 попали прямо в меня.
Дуров и команда ввели Rich Messages — полноценную альтернативу обычным сообщениям, в которых можно конструировать сложную структуру контента с помощью Rich Markdown или HTML-разметки. Кроме того, теперь появилась возможность явно использовать бота в роли полноценного модератора (гварда) на стыке с Mini Apps. Но обо всём по порядку.
Если вам интересны подобные материалы и разработка в целом, подписывайтесь на Telegram-канал «Код на салфетке».
Rich Messages: Парадигма сменилась
В дополнение к стандартным сообщениям (которые теперь официально называются Regular Messages) разработчики ввели понятие «богатых сообщений» — Rich Messages.
Новый формат позволяет окончательно уйти от обычного, скудно форматированного текста к полноценным блочным лонгридам. Ближайший осязаемый пример — верстка в Notion или аналогичных блочных движках. Telegram теперь не просто мессенджер для коротких заметок и постов, ведь у Rich Messages принципиально другие, гораздо более свободные лимиты.
Лимиты на размер сообщений
С Regular Messages всё привычно и довольно тесно:
-
Максимальный размер текстового сообщения — 4096 символов.
-
Для подписей к медиафайлам лимит составляет всего 1024 символа (и увеличивается до 4096, если у вас есть Premium).
-
Всё это рассчитывается с учётом скрытых символов форматирования.
На таких объёмах особо не разгуляешься, когда речь заходит о подробных технических статьях, гайдах или развернутых бизнес-отчётах.
А вот Rich Messages дают возможность развернуть полноценную издательскую платформу внутри одного чата:
-
Максимальный размер сообщения — 32 768 символов UTF-8. Это сразу в 8 раз больше стандартного лимита!
-
До 500 вложенных блоков (включая элементы списков, строки таблиц и цитаты).
-
До 16 уровней вложенности для сложных структур.
-
До 50 медиа-вложений (фото, видео, аудио) внутри одного сообщения.
-
Таблицы шириной до 20 колонок.
Согласитесь, звучит максимально щедро. У меня как у автора статей это нововведение идеально ложится в парадигму публикаций прямо внутри Telegram. Но не так, как раньше — криво-косо разрезая лонгрид на пачку мелких постов, а монолитно, красиво и, что называется, без компромиссов.
Синтаксический фарш: Что теперь можно заверстать
Возможностей форматирования, простите, навалили от души. Функциональности тут больше, чем в статьях Telegraph, а ближайшие ментальные конкуренты по возможностям — это Notion и Obsidian.
Я ещё не успел пощупать абсолютно всё руками в реальном продакшене (апдейту меньше суток), но дока уже изучена, и у меня вовсю чешутся руки переписать интерфейсы парочки своих проектов.
Главная фишка нового синтаксиса: Режим Rich Markdown теперь обратно совместим с GitHub Flavored Markdown и легально позволяет пихать HTML-теги прямо внутрь Markdown-текста.
Давайте разберём самые мощные фичи, которые теперь доступны ботам.
1. Таблицы на максималках
Раньше таблицы в Telegram собирали из «говна и палок» (моноширинного шрифта и пробелов), и на смартфонах это всё равно превращалось в кашу. Теперь таблицы нативные.
-
Поддерживают выравнивание по левому/правому краю и центру.
-
Есть атрибуты
bordered(границы) иstriped(«зебра» для удобного чтения длинных строк). -
Поддерживается объединение ячеек по горизонтали и вертикали (
colspanиrowspan). -
Ограничение: Внутри ячеек (
<td>) разрешено только инлайн-форматирование — сделать список внутри таблицы не выйдет, но сделать текст в ячейке жирным или засунуть его под спойлер можно без проблем.
2. Списки задач и кастомная нумерация
Вместо обычных точек и цифр мы получили полноценные чек-листы:
- [ ] Задача в процессе- [x] Задача выполнена
Для нумерованных списков в HTML-режиме (<ol>) завезли атрибуты start (начать нумерацию хоть с 10), type (римские цифры, буквы) и даже reversed для списков с обратным отсчётом.
3. Интерактивные блоки
-
Сворачиваемый текст (
<details>): Прямо как на GitHub или в Notion. Можно сделать заголовок, по клику на который открывается огромный блок текста. Идеально для факов или скрытия длинных логов. -
Сноски (Footnotes): Научный стиль в телеграме! Пишем по тексту
Текст[], а внизу сообщения расшифровываем[]: Источник. Клиент сам сделает их кликабельными. -
Внутренние якоря: Можно расставить по длинному тексту анкоры
<a name="glava1"></a>и делать навигацию по документу с помощью ссылок<a href="#glava1">Перейти к первой главе</a>.
4. LaTeX и математика
Для образовательных ботов и технических отчётов — это золото. Никаких больше картинок с формулами.
-
Инлайн-формулы:
$x + y$ -
Блочные формулы по центру экрана:
$$E = mc$$или через блок кодаmath.
5. Нативный медиа-интерактив
Забудьте про костыли с отправкой медиагрупп через sendMediaGroup. Теперь медиа — это часть структуры Rich Message.
-
Теги
<tg-collage>и<tg-slideshow>позволяют нативно собирать пачки картинок и видео в красивые коллажи или аккуратные слайдеры прямо внутри текстового лонгрида. -
Тег
<tg-map lat="41.9" long="12.5" zoom="14"/>вшивает интерактивную карту с координатами прямо в тело сообщения.
Умная автодетекция
Telegram научился на лету распознавать в тексте не только ссылки и юзернеймы, но и номера телефонов, а также номера банковских карт. Если ваш бот шлёт логи или приватные данные и вы не хотите, чтобы цифры превращались в кликабельные ссылки, достаточно передать один флаг: skip_entity_detection: True.
Внедрять всё это в код мы будем в следующих материалах. А пока напишите в комментариях: интересен ли вам подробный туториал с разбором реализации таких сообщений на aiogram с конкретными примерами шаблонов?
Стриминг и ИИ: Готовность из коробки
Сам по себе стриминг ответов от нейросетей для Telegram — фича не новая, мы все к ней привыкли. Но круто то, что разработчики не заставили нас ждать и сразу добавили полную поддержку стриминга для нового блочного формата.
-
sendRichMessageDraft— специальный метод для отправки «черновиков» богатых сообщений. Он позволяет плавно дописывать и рендерить новые блоки в реальном времени по мере того, как LLM генерирует ответ, не перерисовывая всё сообщение целиком через костыли. -
RichBlockThinking— абсолютно нативный блок «размышления». Теперь статус в духе «ИИ думает…» можно красиво встроить прямо в структуру лонгрида, пока генерируется основной контент.
Короче говоря, под капотом Rich Messages сразу спроектированы с прицелом на современные реалии ИИ-агентов, так что переезд на новый формат генерации должен пройти без боли.
Guard Bots: Капчи переезжают в Mini Apps
Проблема юзерботов, шарящихся по группам ради спама или парсинга аудитории, стара как мир. Раньше разработчикам приходилось выкручиваться: настраивать бота на перехват заявок или делать его модератором чата, который временно мьютит новичка, пока тот не нажмёт инлайн-кнопку «Я не робот». Выглядело это топорно.
Теперь для решения этой задачи Telegram официально вводит понятие Guard Bots.
Для «гвардов» выкатили специальный метод — answerChatJoinRequestQuery. С его помощью бот может управлять заявками на вступление в закрытые группы или каналы на лету.
Дальше всё зависит исключительно от вашей фантазии. Можно по старинке одобрить, отклонить или кинуть юзера в очередь. Но появилась куда более крутая альтернатива.
Метод sendChatJoinRequestWebApp позволяет боту открыть для пользователя полноценный Mini App прямо в процессе обработки заявки.
То есть вместо убогой инлайн-кнопки «Нажми на синий треугольник» мы теперь можем развернуть перед юзером полноценное веб-приложение:
-
Заставить пройти красивую анимированную капчу.
-
Попросить заполнить полноценную анкету для премодерации (актуально для закрытых бизнес-клубов или приватных комьюнити).
-
Провести мини-тестирование перед входом.
Как только юзер успешно проходит валидацию внутри Mini App, бот одобряет заявку через API.
Лично мне это нововведение безумно нравится, но во всём этом великолепии откровенно не хватает одного — поддержки аналогичного механизма для публичных чатов. Именно туда регулярно прорываются спамеры, минуя любые заявки на вступление, и админам по-прежнему приходится закрывать амбразуру старыми костыльными методами.
Заключение
Этот апдейт Telegram — настоящий подарок для тех, кто ведёт информационные каналы с полезными лонгридами и сложными материалами, а не просто пушит сиюминутные мысли или кликбейтный трэш в духе «ТЕЛЕГРАМ ВСЁ!». И то, что новые фичи форматирования выкатили в Bot API практически одновременно с обновлением клиента — это огромный плюс.
Лично я максимально доволен. В прошлых разборах обновлений я не раз сокрушался, как сильно ботам и самому клиенту не хватает возможностей нормального, гибкого редактора. И вот оно свершилось. Дело за малым — дождаться, пока подтянется апдейт aiogram, и можно будет со спокойной душой пройтись рефакторингом по интерфейсам своих проектов. Хе-хе.
А как вы оцениваете это обновление? Успели уже наткнуться на применение новых блоков или гвард-капч? Делитесь мыслями в комментариях!
И, конечно, не забывайте заглядывать в Telegram-канал «Код на салфетке».
ссылка на оригинал статьи https://habr.com/ru/articles/1046786/