Как сделать закрытый доступ к сценарию бота

Проверка пароля

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

Создаём случайный пароль

В начале компонент Запись задаёт рандомный числовой пароль. Мы используем хэлпер из Handlebars, который записывает в переменную случайное число в промежутке между первым и вторым. Для каждого пользователя будет своё уникальное число внутри одной и той же переменной. Записываем в переменную password. Чтобы проверить пароль, в развилке мы выводим переменную как текст: {{password}}. Так для каждого пользователя подставляется уникальное значение, которое он должен будет ввести.
Случайно сгенерированный пароль нужно обязательно доставить. Самый простой способ — по email. Но при желании можно интегрироваться, к примеру, с sms.ru и отправлять через SMS.

Открыть доступ после оплаты

Одна из частых задач — показывать пользователю определённые разделы только после оплаты, при этом чтобы сохранились и бесплатные разделы. В этом случае можно поступать немного хитрее, чем просто выдавать пароль для доступа.
Например, разделить меню. Делается это в несколько шагов:
1. На экране при успешной оплате запишите в переменную payed значение ok. Так мы помечаем, что пользователь оплатил доступ.
2. На экран Меню поставьте в начало компонент Запись. В ней запишите {{payed}} в payed. Так мы создаём для пользователя переменную payed, даже если он только написал боту.
3. Ниже поставьте Развилку. Она берёт значение из переменной payed. Цель — text, значение — ok, перевод на экран — Меню для платных. Цель по умолчанию — перевод на экран Меню для бесплатных.
4. На обоих экранах меню добавьте кнопки, которые будут переводить на нужные экраны.
5. Когда пользователю нужно вернуться в меню бота, он должен попадать на экран Меню.
Чтобы забрать доступ, когда закончится оплаченный период, настройте Триггерное событие. Отправляться будет экран с записью значения {{\null}} в переменную payed.