В этом уроке вы научитесь обеспечивать валидацию числовых кодов. Это может быть полезно в игровых навыках или для валидации промо-кодов во время акций.

Если вас интересует авторизация по логину и паролю, смотрите этот урок.

Если вы хотите проводить авторизацию определённых аккаунтов Telegram, то смотрите этот урок.

Если вам нужно для разных этапов сценария принимать разные правильные ответы (разные коды), то пройдите этот урок.

Прежде чем приступим к уроку, нужно сделать два отступления.

Обратите внимание, что если в сценарии есть глобальный интент, он будет переводить пользователя на соответствующий экран, даже если вод введен неверно. Также, бот будет продолжать выдавать ответы из базы знаний.

Итак, приступим.

Начнём с создания таблицы.

Создайте таблицу с колонками:
codes

Скопируйте и вставьте это название столбца в таблицу. Если вы допустите ошибку в названии столбца, данный сценарий работать не будет.


Напишите в таблице несколько числовых кодов.

Добавьте в сценарий блок Ввод числа.

Напишите в нём текст:
Введите код.
И напишите переменную:
entry
Также, укажите нужный вам диапазон номеров. Например, от 1 до 9999.



Подготовим таблицу.

Опубликуйте таблицу:

Файл -> Опубликовать в интернете -> Опубликовать -> Ок.
Закройте всплывающее окно.

Путь из всплывающего окна копировать не нужно.



Публиковать страницу нужно только один раз. Вам не нужно снова публиковать страницу после внесения в неё изменений.

Откройте блокнот и скопируйте туда ссылку:

http://tools.aimylogic.com/api/googlesheet2json?&id=

Затем найдите в пути страницы данный элемент:



Это идентификатор документа. Скопируйте его и вставьте в блокнот после той строки, которую вы вставили в блокнот ранее. Затем скопируйте всё, что получилось в блокноте. Эту ссылку нужно будет использовать в HTTP-запросе на следующем шаге.



Вы можете проверить, всё ли сделали правильно, если вставите получившуюся ссылку в строку браузера. Если вы всё сделали правильно, то вы должны увидеть содержание таблицы в виде JSON-массива.



Создайте HTTP-запрос.

Свяжите "Переход после ввода $entry" с новым блоком HTTP-запрос:

Параметры HTTP-запроса:
метод Get;
в url используйте ссылку, которую получили шагом выше.
на вкладке RESPONSE напишите название переменной:
code
и значение:
_.findWhere($httpResponse, {"codes": parseInt($entry)})
вкладки BODY и HEADERS заполнять не нужно.

Нажмите Сохранить.




С помощью этого HTTP-запроса мы получим всю информацию, которая есть у нас в таблице. То есть, сам запрос ещё не проверяет, верный код. Он только делает запрос к url. Если таблица опубликована как описано в инструкции по чтению данных из гугл-таблиц, то запрос будет успешным, даже если пользователь ввел логин неверно. Поэтому мы будем проверять логин на следующих шагах.

А сейчас же мы просто запрашиваем всю информацию из гугл таблиц. Также, http-запрос ищет в гугл-таблицах введенный вами логин с помощью _.findWhere($httpResponse, {"codes": parseInt($entry)}). Если код присутствует в таблице, он помещает его в переменную $code. Но успешное завершение запроса вовсе не означает, что логин действительно был в таблице.

От варианта Завершен с ошибкой сделайте связь с блоком Текст, где напишите:
Ошибка чтения кода $httpStatus



Если в процессе тестирования вы увидите это сообщение, ищите решение проблемы в конце этой статьи.

От варианта Завершен успешно сделайте связь с блоком Условие и напишите в него:
$code


Это условие будет проверять, записалось ли что-либо в переменную $code, то есть, был ли найден введенный пользователем код. Если код был найден, то в переменной будет значение, и условие отработает. Если нет, то будет отрабатывать else.

От else блока Условие сделайте связь с текстовым блоком, в котором напишите:
Такого кода нет. Попробуйте ещё раз.


Добавьте на этот экран кнопку "попробовать ещё" и свяжите её с экраном запроса логина.


От условия сделайте связь с текстовым блоком, в котором напишите:
Код введен верно.



Всё, готово!

Ознакомьтесь с другими уроками по использованию гугл таблиц:

Онлайн-заказы
Как сохранять информацию о пользователе
Бронирование
Как посмотреть статистику самого популярного запроса от пользователя
Авторизация в Telegram
Была ли эта статья полезна?
отменить
Спасибо!