Автоматичне видалення посилань через чат-бота Telegram-групи
Які посилання потрібно видаляти в Telegram-групі
Перед налаштуванням фільтра зафіксуйте правило для учасників і модераторів. Посиланням у Telegram вважається не лише текст виду https://site.example. Учасник може надіслати адресу без протоколу, запрошення до іншого чату, скорочений URL, клікабельний текст із підміненою адресою, посилання в підписі до фото, відео або документу.
Окремо визначте долю посилань на стрімінгові платформи, соцмережі, донат-сервіси, хмари, портфоліо, магазини та форми заявок. Для чату стрімера зазвичай забороняють рекламу чужих каналів і сторонні інвайти, але залишають посилання на розклад, кліпи, донати та ресурси команди.
Бот отримує повідомлення вже після відправлення і потім видаляє його. Тому посилання може бути видно в чаті кілька секунд. Telegram не дає боту попередньо блокувати відправлення повідомлення учасником.
Виберіть схему фільтрації, а не загальну заборону
Повне видалення всіх посилань підходить для закритого чату, де матеріали публікує лише команда проєкту. У публічній спільноті така схема швидко починає заважати: глядачі не зможуть надіслати таймкод, баг-репорт, посилання на кліп або потрібний матеріал за темою обговорення.
Практичніше розділити посилання на кілька категорій: дозволені домени, посилання від довірених ролей, підозрілі посилання від новачків і заборонені запрошення. Наприклад, можна видаляти всі t.me-інвайти, посилання на чужі стріми та скорочувачі URL, але дозволяти посилання на офіційні ресурси каналу.
- Жорстка схема: видаляти будь-який URL від звичайного учасника.
- Білий список: дозволяти лише затверджені домени та піддомени.
- Рольова схема: не перевіряти посилання від адміністраторів, модераторів і службових ботів.
- Репутаційна схема: застосовувати суворий фільтр лише до нових або підозрілих акаунтів.
Чим складніше правило, тим більше тестів знадобиться. Занадто м'яка схема пропустить частину реклами, а занадто широка почне видаляти нормальні повідомлення.
Готовий бот, конструктор або власна логіка
Для базової модерації можна використовувати готових ботів, наприклад Combot або Rose. У таких рішеннях зазвичай є антиспам, фільтри слів, обмеження для новачків, попередження та журнал дій. Перед встановленням перевірте, чи вміє вибраний бот аналізувати саме посилання, підписи до медіа та відредаговані повідомлення.
Готовий бот зручний, коли достатньо стандартного правила. Але набір винятків, формат логів і логіка перевірки URL можуть бути обмежені налаштуваннями сервісу. Команди в таких ботів відрізняються за версією та інтерфейсом, тому орієнтуйтеся на їхню актуальну довідку, а не на випадкові інструкції зі старих постів.
Конструктор автоматизацій підійде для простого сценарію: отримав повідомлення, знайшов URL, надіслав повідомлення модератору. Його слабке місце — затримки, обмеження інтеграції та залежність від зовнішньої платформи. Для активного чату це може бути помітно.
Власний бот через Telegram Bot API потрібен, якщо потрібна окрема політика для різних тем, ролей і типів посилань. Він дозволяє перевіряти сутності Telegram, зберігати історію порушень і надсилати логи в закритий модераторський чат. За це доведеться відповідати сервером, оновленнями та безпекою токена.
Які права потрібні боту для видалення повідомлень
Додайте бота в потрібну групу та призначте адміністратором із правом видалення повідомлень. Без цього бот може розпізнати URL, записати подію в лог і навіть надіслати попередження, але видалити публікацію не зможе.
Якщо плануються тимчасові обмеження, заборона відправлення повідомлень або бан після повторних порушень, знадобляться відповідні права. Для простого антилінку не потрібні дозволи на зміну профілю групи, призначення адміністраторів або керування запрошеннями.
Давайте лише необхідні права. Помилка в коді, уразливість сервісу або компрометація токена небезпечніші, якщо бот отримав повний контроль над чатом.
Перевірте, чи отримує бот повідомлення учасників
Після додавання не обмежуйтеся командою запуску. Надішліть тестове повідомлення зі звичайного акаунта без адмін-прав. Перевірте текст із посиланням, посилання в підписі до фото та клікабельний текст. Важливо тестувати саме учасником: власник і адміністратори часто потрапляють у винятки.
Для власного бота перевірте вхідні оновлення. Нові повідомлення зазвичай приходять у поле message, а зміни вже опублікованих повідомлень — в edited_message. Якщо бот працює в каналі з прив'язаною групою або обробляє публікації каналу, можуть знадобитися окремі типи оновлень.
Режим приватності теж впливає на те, які повідомлення отримує бот. Якщо обробник бачить лише команди та відповіді на повідомлення бота, фільтр посилань працювати повноцінно не буде. Після зміни налаштувань повторно перевірте оновлення на тестовій групі.
Перевіряйте сутності Telegram, а не лише текст
У повідомленні Telegram передає сутності розмітки. Для посилань особливо важливі сутності url і text_link. Перша означає, що сама адреса знаходиться в тексті. Друга означає, що адреса прихована під звичайним словом: наприклад, учасник надсилає «дивіться тут», а перехід веде на рекламний сайт.
Якщо бот перевіряє лише рядок повідомлення, text_link легко пропустити. Для text_link потрібно витягувати URL із поля сутності, а не шукати домен у видимому тексті. Для підписів до медіа аналізуйте caption і caption_entities так само, як text і entities.
Мінімальна логіка перевірки виглядає так: зібрати URL із сутностей, потім знайти текстові адреси, які Telegram не розпізнав як сутності, нормалізувати домен і порівняти його з правилами. Видаляти потрібно все повідомлення разом із вкладенням, інакше в чаті залишиться рекламна картинка або файл без підпису.
Приклади regex для URL і запрошень Telegram
Regex не замінює перевірку сутностей, але допомагає ловити адреси без протоколу та нестандартно оформлений текст. Наприклад, для звичайних URL можна використовувати шаблон: (?i)\b(?:https?://|www\.)[^\s]+. Він знаходить адреси з http, https і www, але не побачить домен виду example.com без префікса.
Для доменів без протоколу можна додати окрему перевірку: (?i)\b[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.(?:com|net|org|ru|io|gg)\b(?:/[^\s]*)?. Список зон потрібно підбирати під аудиторію. Якщо перелічити лише кілька зон, спамери зможуть використовувати інші. Якщо зробити шаблон занадто широким, він почне плутати URL з технічними позначеннями.
Запрошення в Telegram зручно перевіряти окремим правилом: (?i)\b(?:https?://)?(?:t\.me|telegram\.me)/(?:joinchat/|\+|[a-z0-9_]{5,})\b. Таке правило покриває публічні посилання t.me і частину інвайтів. Воно не повинно автоматично вважати спамом посилання на офіційний чат проєкту, тому домени та конкретні дозволені шляхи додають у винятки.
Не намагайтеся закрити всі обходи одним regex. Запис виду s i t e . com, заміна точки словом «точка», Unicode-символи та зображення з адресою потребують інших методів: антиспам-оцінки, ручної перевірки або OCR. Занадто агресивний шаблон дасть багато хибних видалень.
Обробляйте посилання в підписах, пересиланнях і файлах
Спам рідко обмежується звичайним текстовим повідомленням. Посилання може бути в caption у фото, відео, GIF, документі, аудіо або опитуванні з поясненням. Якщо бот дивиться лише поле text, учасник обійде фільтр одним медіафайлом.
Для кожного вхідного повідомлення перевіряйте text, entities, caption і caption_entities. Ім'я документу іноді теж містить домен або рекламний текст, але видаляти файл лише через назву варто обережно: у робочому чаті так легко втратити потрібний архів або запис стріму.
Пересланий пост не завжди містить видимий URL, але може вести на сторонній канал через кнопку або підпис. Звичайний бот не завжди отримує всі дані про вбудовані кнопки та джерело пересилання у форматі, зручному для фільтрації. Якщо пересилання є проблемою, для нових учасників безпечніше обмежити їх окремо або надсилати такі публікації на ручну перевірку.
Закрийте обхід через редагування повідомлень
Типовий обхід виглядає так: учасник надсилає нейтральну фразу, чекає, поки повідомлення вийде із зони уваги модераторів, потім додає рекламу через редагування. Якщо обробник реагує лише на нові повідомлення, посилання залишиться в групі.
Для власного бота підпишіться на оновлення edited_message і запускайте ту саму функцію перевірки, що для message. Не робіть окрему урізану логіку: інакше фільтр може видалити пряме посилання в новому повідомленні, але пропустити text_link або caption після редагування.
У журналі відзначайте, що видалення відбулося після правки, і зберігайте вихідний ідентифікатор повідомлення. Це допоможе розібрати скаргу: учасник міг відредагувати старий пост не заради реклами, а щоб виправити посилання на дозволений ресурс.

Зберіть білий список доменів і шляхів
Білий список краще будувати за нормалізованим доменом, а не за повним збігом рядка. Для адреси https://clips.example.com/video/123 бот повинен відокремити хост clips.example.com від шляху, привести його до нижнього регістру та прибрати службовий префікс www.
Приклад списку винятків для стрімерської спільноти:
- ваш основний сайт і потрібні піддомени;
- сторінки каналу на стрімінгових платформах;
- сторінки з розкладом трансляцій і анонсами;
- сервіси донатів, які використовує проєкт;
- документи команди, форми заявок і трекери задач;
- офіційні Telegram-посилання проєкту: конкретний @username чату або каналу;
- домени партнерів, якщо їхня публікація справді дозволена правилами.
Не додавайте в білий список великий сервіс повністю, якщо потрібен один конкретний ресурс. Дозвіл усього домену може відкрити шлях до чужих сторінок, реферального спаму або фішингу на тій самій платформі. У таких випадках перевіряйте не лише домен, а й допустимий шлях URL.
Розділіть довірені ролі та звичайних учасників
Адміністратори, модератори та боти повідомлень зазвичай повинні публікувати посилання без затримок. Найпростіший варіант — пропускати користувачів зі статусом адміністратора. Він зручний, але дає повний виняток кожному, кому видали адмін-права, включно з тимчасовими помічниками.
Суворіший варіант — окремий список user ID довірених акаунтів. Він корисний, коли не всі адміністратори повинні рекламувати зовнішні ресурси. Список потрібно переглядати після зміни команди: забутий ID колишнього модератора перетворюється на обхід фільтра.
Для новачків можна включити окремий режим. Наприклад, видаляти будь-які зовнішні посилання від учасників, які вступили нещодавно, а повідомлення постійних користувачів надсилати на м'якшу перевірку. Такий підхід ріже масовий спам, але може завадити реальному глядачу одразу надіслати потрібний матеріал.
Як відрізняти рекламне посилання від корисного
Один URL сам по собі не доводить спам. Оцінюйте контекст повідомлення, домен і поведінку автора. Посилання на патчноути в обговоренні оновлення гри відрізняється від «заходь на мій канал» під будь-яким повідомленням, навіть якщо обидві адреси технічно коректні.
- Посилання веде на домен із білого списку або на відомий ресурс за темою обговорення.
- Текст навколо URL пов'язаний із поточною розмовою, а не містить шаблонний заклик підписатися чи заробити.
- Учасник давно перебуває в групі, пише звичайні повідомлення і не розміщує однаковий текст у кількох темах.
- Домен не використовує підозрілі підміни, схожі символи та ланцюжок редиректів через скорочувачі.
- Посилання опубліковано в дозволеній темі, наприклад у розділі кліпів, заявок або технічної підтримки.
- Акаунт не надіслав кілька повідомлень поспіль із різними посиланнями після вступу в чат.
Евристики не варто перетворювати на автоматичний бан. Репутація учасника може бути низькою в нового реального глядача, а відомий акаунт іноді буває зламаний. Для прикордонних випадків корисніше видалити повідомлення, зберегти його в лог і дати спосіб швидко звернутися до модератора.
Налаштуйте реакцію після видалення посилання
Мовчазне видалення зменшує шум, але учасник може повторити публікацію, не розуміючи причини. Коротке повідомлення в чат або особисте повідомлення робить правило прозорішим. Не публікуйте видалений URL у повідомленні: так бот сам повторно поширить спам.
Відповідний текст повідомлення: «Посилання видалено правилами групи. Дозволені матеріали за темою та домени зі списку винятків. Якщо повідомлення видалено помилково, напишіть модератору». Формулювання краще адаптувати під правила спільноти.
Лічильник порушень стане в пригоді для захисту від повторного флуду. Але не вмикайте автоматичне блокування на першому ж спрацюванні. Спочатку зберіть статистику хибних видалень, особливо якщо перевіряються домени без протоколу та посилання в підписах.
Ведіть логи та повідомляйте модераторів
Лог модерації повинен містити мінімум даних для розбору: ID чату, ID користувача, ім'я або username на момент події, ID повідомлення, час, тип спрацювання та причину. Причинами можуть бути «заборонений домен», «інвайт до сторонньої групи», «скорочувач URL», «посилання після редагування» або «посилання від нового учасника».
Видалений URL краще надсилати в закритий модераторський чат, а не зберігати в загальному каналі логів. Якщо посилання може бути шкідливим, не робіть його клікабельним: передавайте домен текстом або замінюйте точку на пробіл із поясненням для модератора.
Корисне повідомлення модератору включає дію та контекст: хто надіслав повідомлення, де його було опубліковано, за яким правилом видалено і чи була це правка. Тоді модератор зможе швидко вирішити, чи додати домен у білий список, зняти обмеження з учасника або залишити правило без змін.
Що робити при хибному спрацюванні
Учаснику потрібен зрозумілий маршрут для скарги: особисті повідомлення модератору, окрема тема в групі або форма зворотного зв'язку. Не просіть надсилати видалене посилання повторно в загальний чат. Краще запропонувати надіслати домен і пояснити, навіщо він потрібен.
Модератору під час розбору варто перевірити правило, тип сутності та статус автора. Якщо URL був дозволеним, додайте точний домен або шлях у винятки. Якщо проблема виникла через занадто широкий regex, звужте шаблон, а не створюйте список із десятків випадкових винятків.
Не відновлюйте автоматично будь-яке видалене повідомлення. У ньому може бути фішингове посилання, а вихідний контекст уже зник. Безпечніше попросити автора опублікувати матеріал заново після підтвердження модерації або розмістити його в темі, призначеній для посилань.
Перевірте фільтр у тестовій групі перед запуском
Створіть тестову групу з тими самими правами бота і заведіть звичайний тестовий акаунт. Перевірка від власника чату не підходить: він може бути виключений із фільтра як адміністратор. Фіксуйте результати, щоб після зміни regex або білого списку не зламати вже працюючі сценарії.
- Надішліть URL з https, з www і домен без протоколу.
- Перевірте посилання, приховане в клікабельному тексті через сутність text_link.
- Надішліть запрошення t.me до сторонньої групи та посилання на дозволений чат проєкту.
- Додайте URL у підпис до фотографії, відео та документу.
- Відредагуйте нейтральне повідомлення і вставте в нього заборонене посилання.
- Перевірте публікацію з дозволеного домену та повідомлення від довіреного модератора.
- Переконайтеся, що в модераторський лог приходить причина видалення без публікації небезпечного посилання в загальному чаті.
Додайте правило про посилання в опис групи
Коротке правило знижує кількість повторних порушень і спорів з учасниками. Достатньо вказати, що рекламні посилання, сторонні запрошення та скорочені URL видаляються автоматично, а корисні матеріали можна узгодити з модерацією.
Не розкривайте в описі всі технічні деталі фільтра, регулярні вирази та умови перевірки репутації. Ця інформація допомагає спамерам підбирати обходи. Для учасників важливіше знати, які посилання допустимі та куди звертатися при помилковому видаленні.
Останні статті
Що змінилося в дизайні та функціоналі Ми оновили сайт, щоб працювати з ним було швидше та зручніше. Основні зміни стосуються інтерфейсу, особистого к..
Доброго времени суток, собрал все новости за это время:1. Главная новость - сильно снижены цены на твич зрителей, пока твич откатил почти все защиты, ..
1. Використовуйте промокод "December2025" на 15% знижки для всіх наших глядачів2. Ми знизили до 1 січня базові ціни на наш конфігуратор і най дешевшу ..
Послуги Twitch працюють стабільно, тому ми готові співпрацювати з командами, реселерами, власниками сервісів, ботами і багатьма іншими.Індивідуальні..
Ми повністю оновили наші послуги перегляду Twitch, і тепер вони працюють стабільно. Ми використовуємо лише якісні IP-адреси для перегляду.Нюанс поля..
Всем доброго времени суток. Сегодня мы анонсируем новую функцию - "Конфигуратор Twitch зрителей".Теперь Вы сможете сами себе собрать любой тариф для т..
Приветствую, составил гайд для стримеров, который на данный момент будет очень актуален. Сейчас ютуб и твич отключили монетизацию с просмотров из ..
Мы наконец-то разработали API Теперь нашим сайтам партнерам будет удобнее с нами работать.По обновлению максимальных тарифов на ютуб - апдейт уже на п..
У зв'язку з величезною популярністю послуг партнерства та реферальної програми ми зробили таблицю співпраці.Суть дуже проста: більше живої аудиторії –..
Наші послуги для стрімерів

Shopee
Наші послуги для контент-мейкерів









