Suivi des tokens d’accès et des profils dans Facebook Login pour Android

Si vous souhaitez que votre app conserve le token d’accès et le profil actuels, vous pouvez implémenter les classes AccessTokenTracker et ProfileTracker.

Ces classes appellent votre code en cas de modification du token d’accès ou du profil. Elles utilisent des récepteurs internes. Vous devez donc appeler stopTracking() sur une activité ou appeler la méthode onDestroy() d’un fragment.

Suivre les tokens d’accès

Par exemple, afin d’utiliser AccessTokenTracker au lieu d’un rappel de connexion :

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

    callbackManager = CallbackManager.Factory.create();

    accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(
            AccessToken oldAccessToken,
            AccessToken currentAccessToken) {
                // Set the access token using 
                // currentAccessToken when it's loaded or set.
        }
    };
    // If the access token is available already assign it.
    accessToken = AccessToken.getCurrentAccessToken();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onDestroy() {
    super.onDestroy();
    accessTokenTracker.stopTracking();
}

Suivre le profil actuel

Vous pouvez utiliser ProfileTracker de façon similaire pour suivre les modifications apportées au profil actuel :

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

    callbackManager = CallbackManager.Factory.create();

    profileTracker = new ProfileTracker() {
        @Override
        protected void onCurrentProfileChanged(
                Profile oldProfile,
                Profile currentProfile) {
            // App code
        }
    };
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onDestroy() {
    super.onDestroy();
    profileTracker.stopTracking();
}