Назад в блог

Rich-сообщения Telegram: что проверяется в блоках, кнопках и опросах

Как Defendy разбирает вложенный текст, подписи, скрытые ссылки, кнопки и правки. Какие ограничения остаются у опросов, превью ссылок и содержимого файлов и как их проверить.

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

В проверенной реализации Defendy извлекает обычный текст с подписями, поддерживаемый вложенный rich-текст и адреса кнопок. Поля самого опроса и отдельно заданный адрес превью ссылки в этот разбор не входят. Ниже разберём границы и составим проверку, для которой не нужны настоящий спам и наказания случайных участников.

Сначала различите три похожих случая

В формате Telegram RichMessage содержимое хранится в блоках. При этом жирный текст или цитата на экране ещё не означают rich-сообщение: они могут быть оформлением обычного текста.

Для модерации важны три ситуации:

  • Оформление внутри отправленного сообщения. Участник написал текст и выделил часть цитатой, спойлером или кодом. Эти слова входят в содержимое его сообщения.
  • Структурированная rich-публикация. Текст находится в поддерживаемых абзацах, списках, таблицах, раскрывающихся разделах или подписях к медиа. До нужной фразы может быть несколько уровней вложенности.
  • Ответ на чужое сообщение. Telegram показывает старый текст рядом с новым ответом. Общий разбор Defendy не копирует всё исходное сообщение и отдельное поле цитаты из ответа в текст, проверяемый у автора ответа.

Последнее особенно важно для жалоб. Ответ «Посмотрите, пожалуйста» не должен наследовать весь спам из сообщения выше только из-за его отображения в интерфейсе. Но если участник сам вставил запрещённый текст в свой ответ, это уже содержимое его публикации: фильтр может на него сработать. Пользуйтесь жалобой модераторам, не размножая опасный материал в группе.

Что получает проверенная цепочка модерации

Разбор собирает текст и сохраняет сведения о ссылках для действующих фильтров. Решение о нарушении принимается дальше, с учётом настроек.

Обычные сообщения. Читаются собственный текст сообщения, его сущности форматирования и ссылок, подпись и сущности подписи. За безобидной надписью может скрываться другой адрес. Видимый текст ссылки и её назначение поэтому нужно проверять отдельно.

Вложенный rich-текст. Разбираются поддерживаемые абзацы, заголовки и нижние текстовые блоки с оформлением. Учитываются метки и содержимое списков, ячейки и подписи таблиц, заголовки и содержимое раскрывающихся разделов, цитаты и подписи к ним. У коллажей и слайд-шоу обходятся поддерживаемые блоки и подписи. Свёрнутый на экране раздел сам по себе не исключает текст из разбора.

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

Кнопки. В проверяемое содержимое входят надписи поддерживаемых обычных inline-кнопок и rich-кнопок, а также явно заданные URL, адреса входа и Web App, если они присутствуют. Служебные callback-данные кнопки не превращаются в текст сообщения. Извлечь адрес также не означает открыть сайт и проверить всё, что произойдёт после нажатия.

Полезный контрольный пример: разделите одно выдуманное стоп-слово на обычный и жирный фрагменты внутри абзаца. Проверенный разбор соединяет соседние rich-фрагменты без искусственного пробела, чтобы одно оформление не меняло слово для фильтра. Между отдельными блоками разделение сохраняется. Это помогает составить тест, но не гарантирует распознавание любых способов маскировки текста.

Цитата и надпись кнопки не должны становиться командой

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

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

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

Опросы и превью ссылок проверяйте отдельно

В опросе может быть не только вопрос с вариантами ответа. Telegram описывает ссылку, прикреплённую к варианту опроса. Это другой элемент, не обычная кнопка сообщения.

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

Если каждый опрос должен проходить предварительное согласование, организуйте публикацию через команду модераторов либо проверьте право участников отправлять опросы в настройках Telegram вашего клиента. Не обещайте участникам непроверенный «сканер опросов Defendy». Если опросы разрешены всем, включите их в ручную проверку и объясните, как сообщить о сомнительном варианте.

Отдельная граница есть у настроек превью ссылки: общий разбор не извлекает link_preview_options.url самостоятельно. Если тот же адрес есть в тексте или поддерживаемой сущности ссылки, он может попасть в проверку этим путём. Наличие красивого превью или его отсутствие ничего не доказывает о разрешённости адреса. Картинка, заголовок превью и содержимое страницы этим разбором отдельно не исследуются.

В обращении в поддержку полезно сразу назвать место ссылки: «в тексте», «за кнопкой», «в варианте опроса» или «только в настройках превью». Для диагностики это четыре разных случая.

Извлечённый текст ещё должен пройти действующие правила

Адрес обрабатывается по вашим настройкам фильтра ссылок. Для слова во вложенном блоке нужен включённый фильтр и подходящее правило. Стоп-слова и антимат решают разные задачи; получение rich-текста не превращает их в универсальную проверку безопасности.

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

У ИИ-проверки также есть собственные условия включения и применения. Разбор rich-текста не означает отправку каждого сообщения модели и не даёт ей доступ к вложениям. В руководстве по ChatGPT-модерации разделены ручная работа модератора с моделью и поддерживаемые проверки Defendy.

Не забудьте правки и статус отправителя

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

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

Контрольная матрица без настоящего спама

Используйте отдельную группу и сообщения, которые не жалко удалить. Для временного правила стоп-слов придумайте нейтральный маркер, для ссылок возьмите безопасный адрес под вашим контролем. Перед началом зафиксируйте сохранённые настройки. Проверьте удаление, накопление предупреждений и срок наказания: действие «Ничего» для участника не обязательно отключает удаление сообщения.

Ниже предложены сценарии приёмки. Это не результаты живого теста Telegram, выполненного для статьи.

Проверяем расположение содержимого, а не только внешний вид

СлучайЧто установить
Обычный текст и разрешённый контроль

Маркер вызывает нужное правило, похожая разрешённая фраза сохраняется.

Вложенный абзац, таблица, раскрывающийся блок

Тот же маркер доходит до правила в каждой поддерживаемой структуре, включая свёрнутый раздел.

Цитата внутри отправленного текста

Содержимое подчиняется выбранной политике; безвредный пример команды не исполняется.

Ответ на сообщение с маркеромЧистый ответ не считается копией всего предыдущего сообщения.
Подпись и адрес кнопки

Отдельно проверяются маркер в подписи и запрещённый тестовый адрес за нейтральной надписью кнопки.

Опрос и адрес только в превью

Зафиксирована граница разбора и ручной либо штатный способ контроля; сохранение не считается успешным сканированием.

Правка разрешённого сообщения

После добавления маркера или поддерживаемой ссылки происходит ожидаемое действие.

Участник и администратор

Статус отправителя записан, исключение для администратора не перепутано с потерей содержимого.

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

Что подтверждает этот разбор

Описанные возможности основаны на проверке реализации от 7 октября 2026 года. Она не подтверждает версию, работающую именно в вашей группе, свежий живой тест или поддержку любого будущего формата Telegram. Неподдерживаемые структуры, пределы разбора, ошибки доставки и слишком большие сообщения не позволяют обещать «проверяется абсолютно всё».

Рабочая политика перечисляет поддерживаемые случаи, даёт модераторам способ разобрать остальные и проверяет как нежелательные, так и нормальные сообщения. Если обязанности ещё не распределены, начните с модерации для новичков. Формат меняет место, где нужно искать содержимое; решение по-прежнему определяется правилами сообщества.