0

我正在使用 JS-SDK,并且我的用户已经获得了我的 facebook 应用程序的授权。

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

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

facebook 需要“publish_actions”权限才能在 facebook 上发布操作。所以,我用“publish_actions”值向我的登录按钮添加了范围属性,当你点击它时它就可以工作了。

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

场景(更清晰的想法):

1) 用户上周访问了我的网站并使用登录按钮进行了授权。

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

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

因此,我想向该用户显示新的身份验证对话框。

4

1 回答 1

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" });
    }
});

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

于 2012-04-06T23:04:04.497 回答