如何在回调中获取使用 facebook 帐户工具包验证的手机号码/电子邮件?

Posted

技术标签:

【中文标题】如何在回调中获取使用 facebook 帐户工具包验证的手机号码/电子邮件?【英文标题】:How to get mobile number/email that is verified using facebook account kit in callback? 【发布时间】:2017-04-04 17:40:26 【问题描述】:

我第一次使用 facebook 帐户工具包在我的网络应用程序中进行电话/电子邮件验证。我已经关注https://developers.facebook.com/docs/accountkit/webjs 进行集成,它工作正常。购买唯一的问题是我发送到帐户套件的电话号码在帐户套件弹出窗口中是可编辑的。那么如何知道哪个电话号码用于验证。我在文档中看不到任何与之相关的信息或回应我进入回调。

有没有办法在帐户工具包弹出窗口中禁用输入框,以便我可以确信从帐户工具包获得的身份验证响应与我发送的相同电话号码相关? 或者有没有办法获取用于验证的电话号码作为帐户工具包响应的一部分?

电子邮件验证也面临同样的问题。

【问题讨论】:

【参考方案1】:

在 Account Kit 流程结束时,您(开发者)会获得经过验证的电话号码。如果您传递了一个初始电话号码,或者您在 android 上并且有 READ_PHONE_STATE 并且 SIM 电话号码已填充,则通过流程的人可能会对其进行编辑,因为他们可能想要使用不同的电话号码。但是,在体验结束时返回给您(开发者)的是已确认的。

请参阅此处文档末尾的电话号码提取: https://developers.facebook.com/docs/accountkit/webjs

【讨论】:

感谢@Olga 的回答。我忽略了文档中提供的服务器端代码实现。它解决了我的问题!【参考方案2】:

可以通过参数“state”发送一个数字

AccountKit_OnInteractive = function()
AccountKit.init(
   
     appId:"APP_ID",
     state:document.getElementById("phone").value;//HERE YOU PUT YOUR NUMBER, you can hash it if you want
     version:"v1.1",
     fbAppEventsEnabled:true,
     redirect:"URL,
   
 );
;

IN RESPONSE you will get it
 function loginCallback(response) 
    var phoneNumber = response.state //HERE GET IT
)

【讨论】:

以上是关于如何在回调中获取使用 facebook 帐户工具包验证的手机号码/电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用一个 Facebook API 调用获取用户帐户(页面)描述?

如何在 iOS UIwebview 中获取 Facebook 访问令牌?

iOS Facebook 帐户工具包 - 成功登录后第二次打开应用程序时保留用户令牌

用户手机号码不通过 Facebook 帐户验证,仅在使用帐户 Facebook 套件时通过短信验证

如何获取/查询联系人的 Facebook 名称?

facebook 帐户工具包 - 返回错误“我们很抱歉,出了点问题。”在安卓中