Facebook FB.login 不会要求用户提供电子邮件权限?

Posted

技术标签:

【中文标题】Facebook FB.login 不会要求用户提供电子邮件权限?【英文标题】:Facebook FB.login won't ask the user for email permissions? 【发布时间】:2011-08-19 03:25:58 【问题描述】:

我的网站使用 Facebook 身份验证。一切正常,除了我似乎无法收到用户的电子邮件。我正在使用这个功能:

 onclick="FB.login(function(response),perms:\'email\');"

这确实会提示用户授予他的权限,但不会提示他的电子邮件(我尝试添加其他特殊权限,但没有成功)。

当然,后来当我使用 FB.api('/me') 时,我没有收到用户的电子邮件。 我的页面可以找到here。

谢谢!

【问题讨论】:

【参考方案1】:

不是perms,是scope

 onclick="FB.login(function(response),scope:\'email\');"

http://developers.facebook.com/docs/reference/javascript/FB.login/

【讨论】:

@Aviv:查看您的代码,如果您想使用scope 参数,您应该在FB.init() 中将oauth 设置为true。你在onclick 中的FB.login 方法也不正确。【参考方案2】:

您没有初始化 Facebook JavaScript SDK - 如果没有它发生,对 FB 方法的任何调用都不会起作用。你可以这样做:

<script>               
    window.fbAsyncInit = function() 
        FB.init(
            appId: 'YOUR_APP_ID', 
            cookie: true, 
            xfbml: true,
            oauth: true
        );
    ;
</script>

把它放在你的源代码之后:

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script> 

正如@steveax 已经说过的,您需要使用scope 而不是perms 来获得您的权限。

【讨论】:

以上是关于Facebook FB.login 不会要求用户提供电子邮件权限?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook (FB.login) 没有请求我的权限

为啥 Facebook 登录没有要求正确的权限?

Facebook Javascript SDK - Fb.login 在浏览器内置的 Facebook 上不起作用

Facebook JavaScript SDK:FB.getLoginStatus和FB.Login在Chrome上不起作用

iOS WebApp 的 FB.login 中断流程

如何在点击FB like按钮时向Facebook用户发送电子邮件?