Преобразование местных номеров в международный формат (для использования с Rails и такими сервисами, как Nexmo/Twilo)

Я хочу проверить номера телефонов моих пользователей с помощью таких сервисов, как Nexmo или Twilo.

Чтобы отправить сообщение через эти службы, мне нужно указать международный номер, однако я не хочу просить своих пользователей указывать полный международный номер — просто их обычный номер, который они дали бы кому-либо в своей стране (я не ожидайте, что они будут знать свои международные телефонные коды и т. д.).

Итак, как лучше всего преобразовать местный национальный номер в международный? Помимо номера, каждому пользователю будет предложено указать свою страну. (Моя пользовательская база будет международной.)

  • Должен ли я добавить в таблицу Country дополнительное поле, содержащее международный телефонный код, а затем просто создать полный международный номер? Это кажется нормальным, пока вы не поймете, что в некоторых странах требуется опускать 0 в начале номера, а в других нет.

  • Есть ли более простой способ? Или драгоценный камень там, который делает это?


person A4J    schedule 15.03.2015    source источник


Ответы (2)


Проект Google с открытым исходным кодом libphonenumber, вероятно, является лучшим инструментом для любой работы с телефонными номерами. Учитывая страну и номер телефона, libphonenumber можно использовать для создания формат E.164, который предпочитает Twilio. Он также может создавать примеры телефонных номеров, чтобы повысить точность данных, которые вы собираете в первую очередь. Доступен ruby-порт. Пример приложения Twilio, использующего libphonenumber в php, можно найти в Twilio. Обучение навыкам.

person beanserver    schedule 16.03.2015
comment
Спасибо, я как раз собирался написать о порте Sam's Ruby. Кроме того, если кто-то еще интересуется Nexmo, этот ответ также может быть полезен: stackoverflow.com/questions/24226139/ - person A4J; 16.03.2015

Гем phony_rails обеспечивает международное форматирование и проверку. Это оболочка rails для phony, предоставляющая вам хелперы просмотра и валидаторы моделей. Чтобы увидеть все поддерживаемые страны, посетите фальшивый репозиторий.

person bcoyle73    schedule 16.03.2015