Facebook SDK 4+注销无法正常工作

3
我正在使用Facebook SDK 4+,我的问题是当我使用

时。
 FacebookSdk.sdkInitialize(getApplicationContext());
 LoginManager.getInstance().logOut();

我的应用程序无法正确注销。当我按登录按钮返回目标活动时,再次进入应用程序时不需要授权。我已安装原生Facebook应用程序。如果没有此应用程序,一切都正常工作。所以我做错了什么或者我漏掉了什么。
API密钥没问题,它们可以正常工作。
我的登录实现类似于:
private ImageButton loginButton;
private LoginButton fbbtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
}

@Override
protected void onResume() {
    super.onResume();
    callbackManager= CallbackManager.Factory.create();
    fbbtn= (LoginButton)findViewById(R.id.fb_button);
    fbbtn.setReadPermissions("public_profile", "email","user_friends");
    loginButton = (ImageButton) findViewById(R.id.login_btn);
    loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            progressDialog = new ProgressDialog(LoginActivity.this);
            progressDialog.setMessage("Loading...");
            progressDialog.show();
            fbbtn.performClick();
            fbbtn.setPressed(true);
            fbbtn.invalidate();
            fbbtn.registerCallback(callbackManager, mCallBack);
            fbbtn.setPressed(false);
            fbbtn.invalidate();
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        progressDialog.dismiss();
        GraphRequest request = GraphRequest.newMeRequest(
                loginResult.getAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(
                            JSONObject object,
                            GraphResponse response) {
                        app.setUser(object);               
                    }
                });

        Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name,email,gender");
        request.setParameters(parameters);
        request.executeAsync();
    }

    @Override
    public void onCancel() {
        progressDialog.dismiss();
    }

    @Override
    public void onError(FacebookException e) {
        progressDialog.dismiss();
    }
};
1个回答

0

要更改用户配置文件,您需要从FB应用程序(或Chrome自定义标签中的Chrome)注销。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接