Потяните за ниточку вариантов верификации пользователей — и она распутается. Вы окажетесь на 51-й странице результатов Google, осознав, что смотрите на платформу верификации, которая требует подтвердить ваш аккаунт, чтобы вы могли верифицировать пользователей, пока вы верифицируете пользователей. Это замкнутый круг, как мем с Xzibit.
Специалисты из Yext упростили верификацию пользователей. Они использовали API Twilio и бэкенд на Java Play, чтобы создать систему подтверждения по телефону. Когда клиентам Yext нужно подтвердить свои бесплатные объявления на Yahoo, всё, что им нужно сделать, — это ответить на звонок и ввести код верификации, который они услышат в трубке.
Инженер-программист Yext И Лю опубликовал статью с подробным описанием того, как он разработал бэкенд их системы телефонной верификации всего за неделю.
**Как Yext создала свою систему верификации**
Недавно Yext стала единственным поставщиком бесплатных базовых объявлений Yahoo. Этот переход включает верификацию объявлений Yahoo для определённых клиентов. Один из вариантов верификации — получение клиентами звонка от Yext с кодом подтверждения. Чтобы реализовать этот срочный проект, мы создали систему исходящих звонков за одну неделю с использованием API Twilio и фреймворка Play.
Play — это фреймворк для веб-приложений с открытым исходным кодом, который широко используется в Yext, а Twilio REST API упрощает разработку телефонных приложений. В этой статье рассказывается, как мы объединили их для создания системы.
**Процесс звонка**
Для отслеживания истории звонков была создана таблица в базе данных. Задачи сервера Play — обрабатывать запросы от API Twilio, отправлять ответы в формате TwiML и обновлять базу данных. API Twilio выступает в роли промежуточного слоя между пользователями и сервером, инициируя звонки и собирая ввод пользователей (например, нажатие клавиши). Общий процесс звонка показан ниже.
**Инициализация звонка**
После того как пользователь выбирает вариант получения звонка от Yext для получения кода верификации, API Twilio инициирует звонок.
Когда звонок соединяется, Twilio отправляет HTTP-запрос на указанный phoneCallUrl, который обрабатывается следующим эндпоинтом Play.
Пример TwiML-ответа, который отправляет этот эндпоинт:
**Ввод пользователя**
Следующий эндпоинт Play генерирует TwiML-ответ для запроса, который API Twilio отправляет при нажатии пользователем клавиши на телефоне.
**После звонка**
Следующий эндпоинт Play обрабатывает запрос, который API Twilio отправляет после завершения звонка, и обновляет таблицу истории звонков в базе данных.
Вот и всё! Теперь у вас есть готовая система телефонной верификации.