2012-08-02 49 views
2

我使用Facebook Javascript SDK在我的应用程序上设置了Facebook身份验证设置。我目前不需要电子邮件许可。我想提示用户输入电子邮件的权限,但仅限于未向我的网站提供基本权限的用户。仅当您尚未拥有基本权限时才提示输入Facebook权限

有没有办法提示,只有当他们没有给予基本的权限,以我的应用程序的电子邮件的权限?

如果可能的话,我希望能够做到这一点没有多个权限弹出窗口。

回答

1

只是为了看看,如果我理解正确的话,你的意思是,对于谁目前没有您的应用程序的授权用户,你要问他们的电子邮件的权限,当你问他们登录,以及谁拥有用户你授权,没有改变,对吧?

如果是这样,这样的事情就可以了,你FB.init后或按一下按钮或任何你做你的FB登录权限立即将其插入:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     // log the user into your site using FB.getAccessToken() or do whatever you normally do. 
    } 
    else if (response.status === 'not_authorized') { 
     // ask the user for permissions 
     FB.login(function(response) { 
      // handle response 
     }, {scope: 'email'}); 
    } 
}); 

警告:这将做如果用户当前没有登录到Facebook并且授权您的应用程序,那么没有任何内容,如果不这样做,您将不得不使用其他普通程序替换其他程序,但会显示“请求e -mail许可”弹出来,当他们登录的老用户。

+0

Kasra,感谢您的答复。该警告有点杀死我想要做的事情。如果有一种方法可以在没有请求任何许可的情况下将某个人登录到图表中,然后检查状态,就可以工作。 – Nicolo77 2012-08-03 14:02:21

+0

我很确定你不能从'FB.getLoginStatus'回调中调用'FB.login',因为浏览器会阻塞结果的弹出窗口。这是我的经验。 – 2013-08-20 21:43:14

+0

@Jakobud浏览器阻止它,因为它不是来自直接用户操作,你可能是在页面加载而不是点击按钮时调用它? – 2013-08-20 22:24:28