Ограничение доступа в раздел бота по количеству обращений
Мы столкнулись с задачей, когда нужно было ограничить доступ пользователей в раздел бота в заданный период. Если точнее, то задача была в ограничении количества входа в чат с оператором до 3 раз в месяц.
Подобный функционал часто интересен организациям, предлагающим пакетные консультационные услуги.
Теперь мы расскажем подробно о реализации в боте.
1. После оплаты услуг нужно установить пользователю Ярлык. Мы предлагаем назвать его Обнуление.
2. После Ярлыка устанавливаем компонент Запись переменной, в котором переменной qChat присваиваем значение {{qChat}}.
3. Добавляем на экран Запись переменной, выбираем тип NULL. В примере имя переменной qChat, экран Чат обнуление. Таким образом, мы стираем значение переменной, которое присвоилось ранее.
4. Добавляем Триггерное событие по ярлыку Обнуление, срабатывающее через заданный период. В данном случае период — 1 месяц или 30 дней. Срабатывать по триггеру должен экран Чат обнуление.
5. При выборе пользователем раздела чата с оператором, он переходит на экран Старт связки. На экране находится развилка, которая берёт значение из переменной qChat. Записываем в Цели развилки условие: если значение переменной qChat соответствует регулярному выражению [^123], то пользователь не может перейти в чат, в остальных случаях — может.
6. Создаём экран для сообщения о невозможности входа в чат, переводим цель с регулярным выражением на этот экран.
7. Цель по умолчанию ведёт на экран с чатом. Перед чатом, в Значении нужно прибавить 1 к переменной qChat: {{sum qChat 1}}. Таким образом, мы будем считать, сколько раз пользователь зашёл в чат.
Все вместе, созданные экраны могут выглядеть так: