如何授予用户权限

时间:2012-04-06 22:08:18

标签: facebook authentication facebook-graph-api oauth-2.0

我正在使用JS-SDK,我的用户已经通过我的Facebook应用程序授权。

现在我的开放图表操作已获批准并开始发布。

我的用户正在进入我的网站,JS SDK会自动获取FB.getLoginStatus的登录状态,并在用户登录Facebook时执行操作。

facebook要求“publish_actions”权限在facebook上发布操作。因此,我使用“publish_actions”值将范围attiribute添加到我的登录按钮,并且当您单击它时它正在工作。

但是有一个问题:我今天没有获得此权限,直到我的用户。因此,如果用户不能自动接受JS SDK的此权限,我想打开一个窗口来接受此权限。因为系统没有这样做。

  

场景(更明确的想法):

     

1)用户上周来到我的网站并通过登录按钮授权。

     

2)我在我的网站上添加了Open Graph的东西,昨天在我的登录按钮上添加了范围attiribute。

     

3)用户登录Facebook。之后,今天来到我的网站。 JS SDK自动授权不会给“本网站上有新的权限”等等任何错误...

     

所以,我想向这个用户显示新的身份验证对话框。

1 个答案:

答案 0 :(得分:2)

好吧,一旦用户加载您的页面,您可以使用js sdk检查用户授予您应用的权限,如果不包含publish_actions,请让他授予它。

您可以在客户端完全执行此操作,如下所示:

FB.api("me/permissions", function(response) {
    if (response && response.data && response.data.lengh == 1 && !("publish_actions" in response.data)) {
        FB.login(function(response) {
            console.log(response);
        }, { scope: "publish_actions" });
    }
});

或者您可以将用户发送到auth对话框,而不是调用 FB.login ,这取决于您。 此外,您可以在服务器端以类似的方式检查权限,而不是客户端,这取决于您。