为什么Facebook登录模式不提示用户访问其电子邮件地址?

问题描述 投票:0回答:1

[我正在尝试将Facebook登录流程集成到网站中(按照此页面:https://developers.facebook.com/docs/facebook-login/web,并且在尝试强制登录方式来请求访问用户的Facebook电子邮件地址时遇到问题。] >

特别是,我正在从我的JS执行以下代码:

FB.login((response) => {
    if (response.status === 'connected' &&
        response.authResponse) {
        // Do something with the response here.
    }
}, {
    scope: 'email',
    return_scopes: true
});

[当用户成功登录时,响应以连接状态返回,并且我正在获取用户的用户ID,访问令牌等,但是当他们单击我的UI中调用FB.login的按钮时,弹出对话框,Facebook不会询问用户是否要授予对其电子邮件地址的访问权限。为什么?

对于我正在构建的网站,我需要访问用户的Facebook电子邮件地址。如果要问他们并拒绝访问,那是一回事,但是弹出的模式甚至没有要求他们访问其电子邮件地址,而且我也没有在响应中返回他们的电子邮件地址。

此外,如果我随后调用以下内容,则email权限会以declined的身份返回:

FB.api(`/${response.authResponse.userID}/permissions`, (response) => {
    console.log(response);
});

有人知道为什么我不能提示用户访问其电子邮件地址吗?谢谢。

Edit

:值得一提的是,我正在localhost上对此进行测试,我想知道这是否有效。在Facebook for Developers仪表板中,我确实将localhost虚拟主机(例如site-name.test)设置为允许重定向的URL,它的确使我可以使用Facebook登录并获取用户ID等,但从来没有提示用户访问其电子邮件地址。谢谢。

我正在尝试将Facebook登录流程集成到网站中(按照此页面:https://developers.facebook.com/docs/facebook-login/web),并且在尝试强制执行时遇到问题登录模式...

facebook scope permissions facebook-javascript-sdk
1个回答
0
投票

再次感谢为错误的答案感到遗憾。没有这个,我将永远无法解决。综上所述,问题是在测试期间,我显然已经拒绝了提供对我的电子邮件地址的访问的请求,此后,它不再要求我允许访问它。

同样,您必须向FB.login传递一个额外的参数,以强制其重新询问用户以访问其电子邮件地址。具体来说,它是authType参数,这是传递它的方式:

© www.soinside.com 2019 - 2024. All rights reserved.