Skip to content

Гейт подписки на каналы

Классический прирост аудитории канала: прежде чем взять триал или открыть каталог покупки, юзер обязан подписаться на ваши Telegram-каналы. Поддерживается несколько каналов и выбор, что именно гейтить.

Настройка

Всё в настройках кабинета:

КлючПо умолчаниюЧто делает
CHANNEL_SUB_REQUIREDвыклвключает гейт
CHANNEL_SUB_CHANNELSсписок каналов, по одному в строке: @канал | Название | ссылка
CHANNEL_SUB_SCOPEallчто гейтить: all — всё, trial — только триал, buy — только покупки

Название и ссылка в строке канала опциональны: без названия кнопка подпишется «Канал», без ссылки — соберётся https://t.me/<канал> из username. Старый одиночный CHANNEL_SUB_ID продолжает работать и объединяется со списком.

Бот должен быть админом

Проверка подписки идёт через get_chat_member — она работает только там, где бот назначен администратором канала. Приватные каналы задавайте по id -100… и указывайте инвайт-ссылку третьим полем.

Как бот проверяет

Перед гейтуемым действием бот опрашивает каждый канал из списка: статусы creator, administrator, member (а также restricted с membership) считаются подпиской. Точки срабатывания — открытие каталога покупки (scope buy) и получение триала (scope trial); all покрывает обе.

Если подписки не хватает, юзер видит экран «Чтобы продолжить, подпишись на наш канал 👇» с кнопками — только тех каналов, где он ещё не состоит (до 8 кнопок), плюс «✅ Я подписался». По этой кнопке бот перепроверяет членство и возвращает юзера ровно в то действие, на котором его остановил: гейт на триале продолжит выдачу триала, гейт на покупке откроет каталог.

Fail-open: миссконфиг не блокирует продажи

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

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов