Melacak Token Akses dan Profil di Facebook Login untuk Android

Jika Anda ingin aplikasi Anda tetap yang terbaru dengan token akses dan profil saat ini, Anda dapat menerapkan kelas AccessTokenTracker dan ProfileTracker.

Kelas tersebut memanggil kode Anda saat terjadi perubahan token akses atau profil. Secara internal mereka menggunakan penerima, jadi Anda harus memanggil stopTracking() di sebuah aktivitas atau panggil metode onDestroy() sebuah fragmen.

Melacak Token Akses

Misalnya, menggunakan AccessTokenTracker, bukan menggunakan callback masuk:

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

Melacak Profil Saat Ini

Anda dapat menggunakan ProfileTracker dengan cara yang sama untuk melacak perubahan di profil saat ini:

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