Гейт подписки на каналы
Классический прирост аудитории канала: прежде чем взять триал или открыть каталог покупки, юзер обязан подписаться на ваши Telegram-каналы. Поддерживается несколько каналов и выбор, что именно гейтить.
Настройка
Всё в настройках кабинета:
| Ключ | По умолчанию | Что делает |
|---|---|---|
CHANNEL_SUB_REQUIRED | выкл | включает гейт |
CHANNEL_SUB_CHANNELS | — | список каналов, по одному в строке: @канал | Название | ссылка |
CHANNEL_SUB_SCOPE | all | что гейтить: 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 в логах, но без блокировки юзера. Кривая настройка гейта никогда не остановит покупки.
