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();
}
};