简体中文
用于测试的 Facebook 短信验证:一次性号码,还是长期持有的号码
团队可以这样通过 OTP Route 接收 Facebook 验证码:在 OTP Gateway 中为 facebook 服务订购一个一次性号码,填入 Facebook 要求输入手机号的位置,再在控制台中,或通过 API 和签名 Webhook 读取验证码。每个验证码 $0.20 起,如果 20 分钟内没有收到短信,费用会自动退回。
第一个决定:这个 Facebook 账号以后还会用到这个号码吗?
Facebook 把手机号与账号绑定的用途不止首次注册,所以下单之前先选好产品。
- 验证一次就完事。 你在测试注册流程、检查应用在 Facebook 登录之后的表现,或确认本地化效果。OTP Gateway 的一次性号码就合适;它只接收一个验证码,随后失效。
- 需要持续登录的账号。 比如你自己业务的长期主页管理员登录、QA 团队每个迭代都会回来使用的共享预发布账号,或团队管理账号的恢复号码。Facebook 可能在这些时刻随时发来新的验证码,而一次性号码届时已不再属于你。请改用专属虚拟号码(Dedicated Virtual Number):仅限美国和加拿大,每月 $1.95 起,收到的短信会显示在控制台,也会推送到你的 Webhook。
虚拟号码页面列出了专属号码包含的内容。美国和加拿大之外,目前没有自助的长期方案。
Facebook 什么时候会发送短信验证码?
Facebook 在几个众所周知的环节使用手机验证:用手机号而不是邮箱注册、确认添加到现有个人主页的号码、选择短信作为第二步的双重验证,以及账号被锁定时的账号恢复。在异常登录之后,它也可能要求确认。如果你的产品依赖 Facebook 账号,这些都是值得分别覆盖的测试用例。
Facebook 的虚拟号码可以来自哪些国家?
Facebook 目前可在 199 个国家路由。团队常选的有:美国、巴西、印度、尼日利亚、菲律宾、德国,以及墨西哥、印度尼西亚、埃及、土耳其、越南、巴基斯坦、法国、英国、肯尼亚和阿尔及利亚。
国家很重要。Facebook 可能根据号码所在地区本地化语言和提示,所以请用你的用户实际所在的市场来测试。为巴西发布创建的账号,应当用巴西号码验证,而不是挑当下最便宜的线路。
Facebook 验证码 API 的流程是怎样的?
使用开发者控制台中的 Bearer 密钥(前缀 or_live_)调用 https://otproute.com/api/v1。服务 id 是 facebook;国家 id 是 api_country 的值,例如 br 或 ng。
- 用
GET /api/v1/prices?country=br&service=facebook查看实时价格和可用情况。 - 创建激活:以
{"service": "facebook", "country": "br"}调用POST /api/v1/activations。 - 将返回的号码填入测试中的 Facebook 手机号输入框。
- 监听
activation.sms_received事件,或退而求其次,每隔几秒轮询一次GET /api/v1/activations/{id}。 - 如果测试中止,调用
POST /api/v1/activations/{id}/cancel。
在 Webhook 一侧,请用端点密钥对 <t>.<raw body> 计算 HMAC-SHA256 来校验 X-OTPRoute-Signature(t=<unix>,v1=<hex>),拒绝过期的时间戳,并以 activation id 为键让处理程序具备幂等性;投递可能重复。每个账号有 10 个密钥、5 个 Webhook 端点,每分钟 300 次请求。请求量较低时,轮询也是不错的替代方案。参考处理程序见基于 Webhook 的验证码捕获。
在控制台中获取 Facebook 验证码
非开发者也可以手动完成:打开 OTP Gateway,选择 Facebook,再选一个国家,确认显示的价格并下单。把号码复制到 Facebook,然后在控制台里观察激活;短信到达后,验证码就会出现。如果改变主意,可以取消,金额会退回钱包。
Facebook 验证码为什么可能收不到?
可能的原因有好几种:Facebook 可能在某个流程中拒绝虚拟号码,也可能是线路拥堵。20 分钟的有效期和退款机制保障了资金:只有验证码送达才收费,否则全额金额会自动退回钱包。
接下来可以这样做:
- 让有效期走完,不要过早取消;
- 稍后重试,或换一个仍符合测试用例的国家线路;
- 避免在紧凑的循环中反复下单,这对谁都没有好处;
- 对于必须长期保留的账号,改用美国或加拿大的专属号码。
负责任地使用 Facebook 手机号
Facebook 的条款要求每个真实的人只有一个个人账号,企业形象则通过与真实人员相关联的主页和商业工具来呈现。请用 OTP Route 测试你自己产品的验证流程、对贵组织拥有的账号做 QA,或在业务登录中保护员工的个人号码。不要为并不存在的人创建账号,也不要绕开 Facebook 对账号施加的限制。OTP Route 与 Facebook 没有任何关联,该名称是其所有者的商标,OTP Route 的《可接受使用政策》适用于每一笔订单。两种产品的价格见价格页面。
常见问题
没有 SIM 卡也能接收 Facebook 验证码吗?
可以,限于单次验证。在 OTP Gateway 中为 facebook 服务订购一个号码,然后在控制台或通过 API 读取验证码。
OTP Route 上 Facebook 手机号的价格是多少?
一次性验证码每个 $0.20 起;API 的价格接口会显示每个国家的确切金额。美国/加拿大的专属号码每月 $1.95 起。
Facebook 会接受所有虚拟号码吗?
不会。Facebook 可能在某些流程中拒绝虚拟号码,所以如果 20 分钟内没有收到验证码,你会被自动退款。
以后还能重新登录同一个 Facebook 账号吗?
只有在你仍然掌控该号码的情况下才可以。为此,请使用美国或加拿大的专属虚拟号码,而不是一次性激活。
能在 CI 任务中进行 Facebook 短信验证测试吗?
可以。从流水线创建激活,通过签名 Webhook 接收验证码,并在开发账号上使用沙盒模式,在不花钱的情况下预演整套接线。
做 Facebook 测试应该选哪个国家?
选你的用户所在的国家。Facebook 会按地区本地化提示和检查,所以匹配的国家线路能给出最贴近现实的结果。
服务名称均为其各自所有者的商标,OTP Route 与其无任何关联。请合法使用号码,并遵守各服务的条款及我们的可接受使用政策。