3

I'm using Facebook SDK 4+ and my problem is that when i use

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

to logout from my app it's not working correct. I return to my target activity with the login button. When i press the button i get in the app again without authorization. I have installed the native Facebook app. Without this app erverything is working fine. So what i'm doing wrong or im missing something.

The Api Key where ok and they are working.

my login implementaion is like:

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();
    }
};
Fesco
  • 147
  • 1
  • 14

1 Answers1

0

To change user profile you need logged out from it in your FB app (or in Chrome if you are using Chrome Custom Tabs)

Hank Moody
  • 354
  • 2
  • 15