Facebook登录 - 获取onCancel

时间:2017-03-20 18:00:54

标签: java android facebook facebook-login facebook-access-token

我在我的代码中添加了Facebook登录按钮。它运作良好。

假设用户通过facebook登录并取消选中'user_friends'权限:将调用'onSuccess'函数,以便可以从loginResult中获取用户数据。

下次当他打开应用程序时,他将获得facebook权限屏幕以允许'user_friends'权限。假设他再次取消选中:'onCancel'功能将被调用,尽管用户现在将按预期自动登录(因为他从未退出)。

如何在onCancel中获取他的数据? (因为我知道他已登录但未取消一些权限)

用户上次登录而非此次登录,因此此次不会调用onSuccess

mCallbackManager = CallbackManager.Factory.create();
mLoginButtonFacebook.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {

    }
    @Override
    public void onCancel() {
        AccessToken token = AccessToken.getCurrentAccessToken();
        if (token != null) {            
            // here I would like to retrieve the user data
            // the user is logged in with canceled permissions
        }
    }
    @Override
    public void onError(FacebookException exception) {

    }
});

1 个答案:

答案 0 :(得分:0)

<强>成功!对不起您的时间和感谢。

AccessToken accessToken = AccessToken.getCurrentAccessToken();

GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
    @Override
    public void onCompleted(JSONObject object, GraphResponse response) {
        // object will contain the user data
    }
});