Facebook oAuth:强制发送电子邮件权限

Lee*_*ies 7 facebook facebook-javascript-sdk facebook-php-sdk

StackOverflow和Untappd这样的网站如何"强制"用户接受他们的权限?

当我尝试使用JavaScript SDK时,我一直在使用范围对象来请求电子邮件地址,但我一直看到"编辑您提供的信息",允许用户不提供他们的电子邮件地址.我甚至尝试过手动构建登录流程,结果相同.

图片:

在此输入图像描述

由于我们允许用户通过Facebook在网站上注册,我们依赖于电子邮件地址在我们的数据库中创建一个帐户.

然而像StackOverflow和Untappd这样的网站没有提供这样的选项,我不得不接受这些权限.

那秘密是什么?我该如何实现这一目标?这是我在某个地方俯瞰的场景吗?还是需要"批准"?

lus*_*chn 16

他们正在使用2014年4月底之前创建的旧应用程序,当时它有所不同.您不能再强制它,您只能检查用户是否在登录后使用该return_scopes标志授权了权限,例如:

https://developers.facebook.com/docs/reference/javascript/FB.login/v2.2


KBo*_*Bog 5

以下是使用Facebook SDK V4.x为我工作的解决方案: 如何使用Facebook iOS SDK 4.x“请求”电子邮件权限?

如果用户取消选择“电子邮件”权限并首次进行,则在您请求电子邮件访问的其他连续时间,不允许用户取消选择电子邮件并单击“确定”。

系统只会为他显示“现在不显示”和“确定”(如果取消选择电子邮件,则显示为灰色)。

编辑:这是使用Facebook JS SDK的重新请求方法:

FB.login(function(response) {
   console.log(response);
}, {
   scope: 'user_likes',
   auth_type: 'rerequest'
});
Run Code Online (Sandbox Code Playgroud)