Home Facebook SDK 4 for Android - how to log out programmatically
Reply: 5

Facebook SDK 4 for Android - how to log out programmatically

franco phong
1#
franco phong Published in 2015-03-27 16:10:54Z

Recently, Facebook released SDK 4 with new and cool updates. I tried to switch into SDK4 to use new features, however, I am struggling with the Login feature of Facebook.

So far, to log out Facebook programmatically, I used :

Session session = Session.getActiveSession();
session.closeAndClearTokenInformation();

But SDK4 seems not to support Session anymore, and in official docs, they mention:

There are two ways to implement Facebook login on Android:

LoginButton class - Which provides a button you can add to your UI. It follows the current access token and can log people in and out.

Well, seems there's no way to log out Facebook programmatically except using LoginButton. Anyone have any idea, please share it here.

stackex
2#
stackex Reply to 2015-05-27 06:53:56Z

You can use LoginManager.getInstance().logOut();, even if you use LoginButton because

This UI element wraps functionality available in the LoginManager.

EDIT: Just to mention that this works for Facebook SDK v4. I don't know if they will change it in the future.

@as batoutofhell mention, don't forget to put FacebookSdk.sdkInitialize(getApplicationContext()); to initialize the facebook sdk. Please see here for the details.

Nilesh Rathod
3#
Nilesh Rathod Reply to 2018-01-06 05:10:18Z

You can use LoginManager.logOut()

Check out https://developers.facebook.com/docs/reference/android/current/class/LoginManager/

surfer190
4#
surfer190 Reply to 2015-06-01 11:34:53Z

To handle it with the loginButton:

//Check if user is currently logged in
        if (AccessToken.getCurrentAccessToken() != null && com.facebook.Profile.getCurrentProfile() != null){
            //Logged in so show the login button
            fbLogin.setVisibility(View.VISIBLE);
            fbLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
//log out
                    LoginManager.getInstance().logOut();
                    gotoLogin();
                }
            });
        }
Frank
5#
Frank Reply to 2015-09-09 09:37:05Z

SDK4, if you want to completely de-couple, make sure you also remove the app from the user's facebook account. This method disconnects the user completely:

public void disconnectFromFacebook() {

    if (AccessToken.getCurrentAccessToken() == null) {
        return; // already logged out
    }

    new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
            .Callback() {
        @Override
        public void onCompleted(GraphResponse graphResponse) {

            LoginManager.getInstance().logOut();

        }
    }).executeAsync();
}
Ritesh Jha
6#
Ritesh Jha Reply to 2017-04-11 11:06:50Z

U can logout by using LoginManager but u have to use graph request also. I am talking about log out completely so, that next time u can login with different account.

new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
            .Callback() {
        @Override
        public void onCompleted(GraphResponse graphResponse) {

            SharedPreferences pref = DashBoard.this.getPreferences(Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = pref.edit();
            editor.clear();
            editor.commit();
            LoginManager.getInstance().logOut();

            Intent logoutint = new Intent(DashBoard.this,MainActivity.class);
            logoutint.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
               startActivity(logoutint);

        }
    }).executeAsync();

By the help of shared preferences here u can logout completely. And next time u can logout with different account.

You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.321793 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO