如何检查用户是否已允许您的应用程序在其流上发布(以避免暂时弹出菜单)。目前我只是使用这个JavaScript代码:
<script>
<!--
Facebook.showPermissionDialog('publish_stream,read_stream');
//-->
</script>
答案 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)
使用Users.hasAppPermission检查用户是否具有这些权限。
通用API:http://wiki.developers.facebook.com/index.php/Users.hasAppPermission
Javascript库:http://developers.facebook.com/docs/?u=facebook.jslib.FB.ApiClient.users_hasAppPermission
答案 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();