我使用的是最新版本的Facebook SDK(2015年5月)。在用户通过Android应用程序中的Facebook登录SDK登录后,如何以编程方式撤消/删除用户的特定权限(或全部)?我在开发人员文档中找到了以下内容,但我不确定如何以编程方式执行此操作。谢谢。
答案 0 :(得分:4)
使用适用于Android的新版4.x.x版本的Facebook Sdk
,现在可以轻松撤销权限获取阅读权限
LoginManager.getInstance().logInWithReadPermissions(fragmentoractivity, Arrays.asList("user_likes"));
//multiple
LoginManager.getInstance().logInWithReadPermissions(fragmentoractivity, Arrays.asList("user_likes", "user_friends"));
用于发布权限
LoginManager.getInstance().logInWithPublishPermissions(fragmentoractivity, Arrays.asList("publish_actions"));
删除或撤销不是必需的,只要您想要撤消它们就要求这样的权限
例如,如果用户拒绝了该权限,那么您也可以使用上述命令再次请求权限。
更新
如果要删除权限,请使用方法删除
执行图形请求String graphPath="/me/permissions/user_likes";
GraphRequest deletepermission=new GraphRequest(AccessToken.getCurrentAccessToken(), graphPath, null, HttpMethod.DELETE, new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse graphResponse) {
if(graphResponse!=null){
FacebookRequestError error =graphResponse.getError();
if(error!=null){
Log.e(ERRORTAG, error.toString());
}else {
//permission deleted or revoked
}
}
}
});
deletepermission.executeAsync();
//or
deletepermission.executeAndWait()
以上两个命令或类似命令可用于执行图形请求 如果您有多个请求,请使用GraphRequestBatch(检查fb文档)
现在您需要编辑的是String graphPath,您可以替换" user_likes"如果您要撤消权限,或者您可以删除此部分以立即撤消所有权限。
还要确保删除HttpMethod.DELETE。
答案 1 :(得分:4)
我找到了如何在最新版本的Android Android SDK(Graph API 2.0+及更高版本)中撤销用户权限的解决方案。这是2015年5月。开发人员需要使用 GraphRequest.newGraphPathRequest()并设置 GraphPath 并将 HttpMethod 设置为DELETE。
LoadWebImageToPictureBox(ImagePreview, SelectedFile)
如果您想要撤消用户访问权限,只需将图形路径更改为
public void graphRevokeUserStatusPermission(){
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if(accessToken == null)
return;
GraphRequest request = GraphRequest.newGraphPathRequest(
accessToken,
"/me/permissions/user_status",
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
// response
}
}
);
request.setHttpMethod(HttpMethod.DELETE);
request.executeAsync();
}
并且不要忘记在调用Facebook Permissions Revoking的onCompleted方法中清除信息,这个注销方法不会撤销访问权限,它只是清除令牌和配置文件信息,因此开发人员需要请求url撤消访问权限
更多信息:
{{3}}