如何在 Android 中为 Facebook 登录 SDK 撤销特定(或全部)用户权限

cod*_*ark 2 android facebook facebook-graph-api facebook-android-sdk facebook-login

我使用的是最新版本的 Facebook SDK(2015 年 5 月)。在用户通过 Android 应用程序中的 Facebook 登录 SDK 登录后,如何以编程方式撤销/删除用户的特定权限(或全部)?我在开发人员文档中找到了以下内容,但我不确定如何以编程方式执行此操作。谢谢你。

在此处输入图片说明

cod*_*ark 5

我在最新版本的 Facebook Android SDK(Graph API 2.0+ 及更高版本)中找到了有关如何撤销用户权限的解决方案。这是每 2015 年 5 月。开发人员需要使用GraphRequest.newGraphPathRequest()并设置GraphPath并将HttpMethod设置为 DELETE。

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();
    }
Run Code Online (Sandbox Code Playgroud)

如果您想撤销用户访问权限,只需将图形路径更改为

    String userId = accessToken.getUserId();
    //url to revoke login DELETE {user_id}/permissions
    userId + "permissions"
Run Code Online (Sandbox Code Playgroud)

并且不要忘记在调用LoginManager.getInstance().logOut() 的onCompleted 方法中清除信息,此注销方法不会撤消访问权限,它只是清除令牌和配置文件信息,因此开发人员需要请求 url 来撤消访问权限

更多信息:

Facebook 权限撤销