Введение
В этом руководстве показано, как создать демонстрационное бессерверное решение с использованием Firebase Callable Functions и API Vonage Identity Insights, который автоматически пытается очистить вводимые пользователем данные. Вам не придется беспокоиться, если ваши пользователи вводят номера с дефисами, пробелами или буквенно-цифровыми символами. API сделает все возможное для разбора и проверки номера телефона.
Проверка номеров телефонов и обеспечение их чистоты и правильного формата является обязательным требованием. В создаваемом нами демо-приложении вы можете ввести номер телефона и использовать API Vonage Identity Insights для получения информации о действительности формата, международном формате, коде страны, текущем и исходном названии оператора, а также типе сети.
Проверка номера телефона
Предварительные требования
Убедитесь, что у вас есть:
- Аккаунт Google с Firebase с включенным биллингом Blaze (требуется для Node.js функций).
Аккаунт Google с Firebase с включенным биллингом Blaze (требуется для функций).
- Установленный Firebase CLI: npm install -g firebase-tools
Установленный Firebase CLI: npm install -g firebase-tools
- Аккаунт Vonage.
Аккаунт Vonage.
Структура файлов
Пример кода для этого проекта имеет следующую структуру.
Давайте свяжем каталог этого проекта с проектом Firebase. Вы можете создать несколько псевдонимов проектов, выполнив firebase use --add.
Инициализация функции Firebase
Инициализируйте функции Firebase в каталоге вашего проекта:
При появлении запроса выберите JavaScript. Также есть возможность выбрать TypeScript и Python. Затем перейдите в папку functions и установите серверный SDK Vonage:
- Чтобы создать приложение, перейдите на страницу Создание приложения на панели управления Vonage и укажите имя для вашего приложения.
Чтобы создать приложение, перейдите на страницу Создание приложения на панели управления Vonage и укажите имя для вашего приложения.
- Если вы планируете использовать API, задействующий веб-хуки, вам понадобится закрытый ключ. Нажмите «Сгенерировать открытый и закрытый ключи», после чего должна начаться автоматическая загрузка. Храните его в безопасности; этот ключ невозможно загрузить повторно в случае утери. Он будет следовать соглашению об именовании private_<id вашего приложения>.key. Теперь этот ключ можно использовать для аутентификации вызовов API. Примечание: ваш ключ не будет работать до тех пор, пока приложение не будет сохранено.
Если вы планируете использовать API, задействующий веб-хуки, вам понадобится закрытый ключ. Нажмите «Сгенерировать открытый и закрытый ключи», после чего должна начаться автоматическая загрузка. Храните его в безопасности; этот ключ невозможно загрузить повторно в случае утери. Он будет следовать соглашению об именовании private_<id вашего приложения>.key. Теперь этот ключ можно использовать для аутентификации вызовов API. Примечание: ваш ключ не будет работать до тех пор, пока приложение не будет сохранено.
- Выберите необходимые возможности (например, Voice, Messages, RTC и т. д.) и укажите требуемые веб-хуки (например, URL-адреса событий, URL-адреса ответов или URL-адреса входящих сообщений). Они будут описаны в руководстве.
Выберите необходимые возможности (например, Voice, Messages, RTC и т. д.) и укажите требуемые веб-хуки (например, URL-адреса событий, URL-адреса ответов или URL-адреса входящих сообщений). Они будут описаны в руководстве.
- Чтобы сохранить и развернуть, нажмите «Сгенерировать новое приложение» для завершения настройки. Теперь ваше приложение готово к использованию с API Vonage.
Чтобы сохранить и развернуть, нажмите «Сгенерировать новое приложение» для завершения настройки. Теперь ваше приложение готово к использованию с API Vonage.
API Vonage Identity Insights использует JWT, поэтому нам необходимо безопасно сохранить наш идентификатор приложения и закрытый ключ. Мы будем использовать встроенный менеджер секретов Firebase, чтобы эти значения никогда не хранились в исходном коде:
Затем появится запрос на добавление идентификатора приложения Vonage.
Затем появится запрос на добавление закрытого ключа Vonage, связанного с идентификатором вашего приложения.
Изучение логики бэкенда
Мы будем использовать API Vonage Identity Insights. Вызываемые функции Firebase (Callable Functions) автоматически обрабатывают CORS и аутентификацию, позволяя вашему фронтенду вызывать их. Вы можете следить за ходом работы с помощью полного примера в репозитории примеров.
Мы инициализируем клиент Vonage. Identity Insights требует аутентификации JWT. Мы инициализируем клиент, используя сохраненные ранее секреты.
Примечание: .replace(/\n/g, '\n') — это исправление для обработки проблем с форматированием новых строк при использовании Firebase Secret Manager.
Примечание: .replace(/\n/g, '\n') — это исправление для обработки проблем с форматированием новых строк при использовании Firebase Secret Manager.
Мы запрашиваем данные format и current_carrier из API Identity Insights, чтобы узнать не только техническую действительность номера телефона, но и является ли он мобильной линией, на которую мы действительно можем отправить SMS.
Мы упаковываем все вместе и отправляем объект ответа обратно на фронтенд, чтобы ему не приходилось разбирать сырые ответы API.
Развертывание функции в облаке
Выполните следующую команду в терминале из корневого каталога вашего проекта, чтобы развернуть функцию в Firebase:
В процессе развертывания Firebase CLI упакует исходный код вашей функции, загрузит его в Cloud Functions и настроит необходимые разрешения Cloud Secret Manager для настроенных секретов. В терминале будут отображаться журналы хода выполнения с описанием каждого шага, заканчивающиеся сообщением об успешном завершении и URL-адресом конечной точки для вашей развернутой функции.
Чтобы убедиться в успешности развертывания, откройте консоль Firebase, выберите свой проект и перейдите в раздел Functions. Вы должны увидеть validatePhone в списке на панели управления вместе с его статусом, средой выполнения и типом триггера.
Подключение фронтенда
Поскольку мы использовали вызываемую функцию (Callable Function), вызов ее из вашего веб-приложения выполняется просто. Вам не нужно возиться с запросами fetch, заголовками HTTP или разбором JSON.
Создайте index.html file и вставьте код, не забыв подставить конфигурацию вашего проекта Firebase.
Тестирование
Откройте HTML-файл в браузере, введите номер телефона в поле ввода, включая код страны, и нажмите «Проверить номер» (Validate Number). Вы получите информацию о номере телефона, точно так же, как показано на изображении в начале этого руководства.
Заключение
API Identity Insights помогает вашему приложению принимать только реальные, маршрутизируемые номера телефонов, одновременно собирая ценные данные об операторе связи. Чтобы узнать больше о том, какие данные можно извлечь из номеров телефонов, ознакомьтесь с документацией по API Vonage Identity Insights.












