Валидация кода
В этом уроке вы научитесь обеспечивать валидацию числовых кодов. Это может быть полезно в игровых навыках или для валидации промо-кодов во время акций.
- Если вас интересует авторизация по логину и паролю, смотрите этот урок.
- Если вы хотите проводить авторизацию определенных аккаунтов Telegram, то смотрите этот урок.
- Если вам нужно для разных этапов сценария принимать разные правильные ответы (разные коды), то пройдите этот урок.
Прежде чем приступим к уроку, нужно сделать два отступления.
Обратите внимание, что если в сценарии есть глобальный интент, он будет переводить пользователя на соответствующий экран, даже если вод введен неверно. Также, бот будет продолжать выдавать ответы из базы знаний.
Итак, приступим.
- Начнем с создания таблицы.
Создайте таблицу с колонками: codes
Скопируйте и вставьте это название столбца в таблицу. Если вы допустите ошибку в названии столбца, данный сценарий работать не будет.
Напишите в таблице несколько числовых кодов.
- Добавьте в сценарий блок
num to $var
.
Напишите в нем текст: Введите код.
И напишите переменную: entry
. Также, укажите нужный вам диапазон номеров. Например, от 1 до 9999.
- Подготовим таблицу.
-
Опубликуйте таблицу: Файл → Поделиться → Опубликовать в интернете → Опубликовать. Путь из всплывающего окна копировать не нужно. Закройте всплывающее окно.
подсказкаПубликовать страницу нужно только один раз. Вам не нужно снова публиковать страницу после внесения в нее изменений. -
Разрешите доступ к таблице по ссылке: для этого нажмите кнопку Настройки доступа в правом верхнем углу страницы, затем в модальном окне кликните Разрешить доступ всем, у кого есть ссылка. Таблица должна быть доступна для чтения. Чтобы завершить настройку, нажмите Готово.
-
Откройте блокнот и скопируйте туда ссылку, которая должна иметь следующий вид:
https://tools.aimylogic.com/api/googlesheet2json?sheet=<название_листа>&id=<id_таблицы>
-
Затем найдите в пути страницы данный элемент:
Это идентификатор документа. Скопируйте его и вставьте в блокнот после той строки, которую вы вставили в блокнот ранее. Затем скопируйте все, что получилось в блокноте. Эту ссылку нужно будет использовать в HTTP-запросе на следующем шаге.
- Вы можете проверить, все ли сделали правильно, если вставите получившуюся ссылку в строку браузера. Если вы все сделали правильно, то вы должны увидеть содержание таблицы в виде JSON-массива.
- Создайте HTTP-запрос.
Свяжите «Переход после ввода $entry» с новым блоком HTTP-запрос:
Параметры HTTP-запроса:
- метод Get
- в URL используйте ссылку, которую получили шагом выше
- на вкладке RESPONSE напишите название переменной:
code
и значение:_.findWhere($httpResponse, {"codes": parseInt($entry)})
- вкладки BODY и HEADERS заполнять не нужно.
Нажмите Сохранить.
С помощью этого HTTP-запроса мы получим всю информацию, которая есть у нас в таблице. То есть, сам запрос еще не проверяет, верный код. Он только делает запрос к url. Если таблица опубликована как описано в инструкции по чтению данных из Google Таблиц, то запрос будет успешным, даже если пользователь ввел логин неверно. Поэтому мы будем проверять логин на следующих шагах.
А сейчас же мы просто запрашиваем всю информацию из Google Таблиц. Также, http-запрос ищет в Google Таблицах введенный вами логин с помощью _.findWhere($httpResponse, {"codes": parseInt($entry)})
. Если код присутствует в таблице, он помещает его в переменную $code. Но успешное завершение запроса вовсе не означает, что логин действительно был в таблице.
- От варианта Завершен с ошибкой сделайте связь с блоком Текст, где напишите:
Ошибка чтения кода $httpStatus
Если в процессе тестирования вы увидите это сообщение, ищите решение проблемы в конце этой статьи.
- От варианта Завершен успешно сделайте связь с блоком Условие и напишите в него:
$code
Это условие будет проверять, записалось ли что-либо в переменную $code, то есть, был ли найден введенный пользователем код. Если код был найден, то в переменной будет значение, и условие отработает. Если нет, то будет отрабатывать else.
- От else блока Условие сделайте связь с текстовым блоком, в котором напишите:
Такого кода нет. Попробуйте еще раз.
Добавьте на этот экран кнопку «попробовать еще» и свяжите ее с экраном запроса логина.
8. От условия сделайте связь с текстовым блоком, в котором напишите: Код введен верно.
Все, гото во!
Ознакомьтесь с другими уроками по использованию Google Таблиц: