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

时间:2016-10-26 14:10:11

标签: android facebook-sdk-4.0

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

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

从我的应用程序注销它无法正常工作。我使用登录按钮返回目标活动。当我按下按钮时,我会在未经授权的情况下再次进入应用程序。我已经安装了原生Facebook应用程序。没有这个应用程序,一切都工作正常。所以我做错了什么或者我错过了什么。

Api Key,好的,他们正在工作。

我的登录实现就像:

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 :(得分:0)

要更改用户个人资料,您需要在FB应用中退出(如果您使用的是Chrome自定义标签,则需要在Chrome中注销)