Facebook Access Token always null

Viewed 1450

I have some code in my main Activity which calls My facebook Login activity class if AccessToken.getCurrentAccessToken() is null:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;

import com.facebook.AccessToken;
import com.facebook.AccessTokenTracker;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.Profile;
import com.facebook.ProfileTracker;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;

import java.util.Arrays;

import matthewboyle.lurker_android.MainFeedScreen;
import matthewboyle.lurker_android.utilities.ConnectionChecker;

/**
 * Created by matthewboyle on 28/05/2017.
 */

public class FacebookLogin extends AppCompatActivity {
    private CallbackManager mCallbackManager;
    private AccessTokenTracker accessTokenTracker;
    private ProfileTracker profileTracker;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mCallbackManager = CallbackManager.Factory.create();
        accessTokenTracker = new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
                Log.d("facebook", "onCurrentAccessTokenChanged");


            }
        };
        profileTracker = new ProfileTracker() {
            @Override
            protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
                Log.d("facebook", "onCurrentProfileChanged");

            }
        };
        accessTokenTracker.startTracking();
        profileTracker.startTracking();

        LoginManager.getInstance().registerCallback(mCallbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Log.d("facebook", "in on success");
                        AccessToken accessToken = loginResult.getAccessToken();
                        Log.d("permissions", accessToken.getPermissions().toString());

                        Log.d("facebook", "in on success,got a token and its "+accessToken);

                    }

                    @Override
                    public void onCancel() {
                        Log.d("facebook", "in cancel");

                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Log.d("facebook", "in error");
                        Log.d("facebook", exception.toString());




                    }


                });
        LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_posts","user_likes","user_about_me","user_managed_groups","user_tagged_places"));
        Log.d("facebook", "Done so redirecting with "+AccessToken.getCurrentAccessToken());

        startActivity(new Intent(FacebookLogin.this,MainFeedScreen.class));


    }
    @Override
    protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
        super.onActivityResult(requestCode, responseCode, intent);
        //Facebook login
        mCallbackManager.onActivityResult(requestCode, responseCode, intent);

    }
}

If I run this code, the only print statement I get is:

 Done so redirecting with null

It doesn't seem to hit any other method in the class at all.

It is worth mentioning that this code worked fine until I reinstalled the app. I went onto Facebook and updated the hash key in my app but that didn't seem to help. However, I'm not seeing any errors due to hash key.

Would appreciate any help.

2 Answers
Related