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

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

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


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

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

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

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

Чтобы забрать доступ, когда закончится оплаченный период, настройте Триггерное событие. Отправляться будет экран с записью значения {{\null}} в переменную payed.