2

我想使用 Nexmo 或 Twilo 等服务验证我的用户电话号码。

要通过这些服务发送消息,我需要提供国际号码,但是,我不想要求我的用户提供完整的国际号码 - 只是他们愿意提供给本国任何人的正常号码(我不要指望他们知道他们的国际拨号代码等)。

那么将本地国家号码转换为国际号码的最佳方法是什么?除了他们的号码之外,还将要求每个用户提供他们的国家/地区。(我的用户群将是国际化的。)

  • 我是否应该在包含国际拨号代码的 Country 表中添加一个额外的字段 - 然后只构建完整的国际号码?这似乎没问题,直到您认为某些国家/地区要求在数字开头省略 0,而其他国家/地区则不需要。

  • 有没有更简单的方法?或者那里的宝石可以做到这一点?

4

2 回答 2

3

Google 的开源libphonenumber项目可能是任何涉及电话号码的工作的最佳工具。给定国家和电话号码,libphonenumber 可用于生成 Twilio 喜欢的E.164格式。它还可以生成示例电话号码,以提高您首先收集的数据的准确性。一个红宝石端口是可用的。在Twilio Skills training中可以找到在 php 中使用 libphonenumber 的示例 Twilio 应用程序。

于 2015-03-16T08:01:12.983 回答
0

phony_rails gem提供国际格式化和验证。这是一个假冒的 Rails 包装器,为您提供视图助手和模型验证器。要查看它支持的所有国家/地区,请参阅phony存储库。

于 2015-03-16T15:06:20.923 回答