Facebook权限:如何检查用户是否已为您的应用程序允许publish_stream

时间:2009-12-19 17:12:04

标签: javascript facebook

如何检查用户是否已允许您的应用程序在其流上发布(以避免暂时弹出菜单)。目前我只是使用这个JavaScript代码:

<script>
    <!--
        Facebook.showPermissionDialog('publish_stream,read_stream');
    //-->
</script>

5 个答案:

答案 0 :(得分:14)

使用Graph API执行此操作的正确方法是使用User.permissions。

请参阅:https://developers.facebook.com/tools/explorer/?method=GET&path=me%2Fpermissions

因此,您可以使用JS SDK:

FB.api('/me/permissions', checkAppUserPermissions);

function checkAppUserPermissions(response) {
    console.log("User permissions response", response);
}

答案 1 :(得分:3)

答案 2 :(得分:0)

abronte是对的,使用hasAppPermission,正如你在这个tuorial中看到的那样:

  

http://www.barattalo.it/2010/01/17/posting-to-facebook-from-website-with-facebook-connect/

答案 3 :(得分:0)

建立AdamB的答案,如果您使用的是JavaScript Graph SDK,您仍然可以调用REST API(函数users.hasAppPermission是REST API的一部分)。

转到 FB.api 获取说明。

答案 4 :(得分:0)

使用FB sdk,您可以简单地使用&#34; / me&#34;端点以检查特定的权限状态。 对于所有权限,将permBundle设为null,在响应中返回all的权限状态。

final Bundle permBundle = new Bundle();
permBundle.putCharSequence("permission", "publish_actions");
GraphRequest request = new GraphRequest(
        AccessToken.getCurrentAccessToken(),
        "/me/permissions", permBundle, HttpMethod.GET,
        new GraphRequest.Callback() {
            @Override
            public void onCompleted(GraphResponse graphResponse) {
                Log.d(TAG, "response: " + graphResponse.getJSONObject());
            }
        }
);
request.executeAsync();