Nachverfolgen von Zugriffsschlüsseln und Profilen in Facebook Login für Android

Wenn deine App den aktuellen Zugriffsschlüssel und das Profil nachverfolgen soll, kannst du die Klassen AccessTokenTracker und ProfileTracker implementieren.

Diese Klassen rufen deinen Code auf, wenn ein Zugriffsschlüssel oder ein Profil geändert wird. Sie verwenden interne Empfänger, du musst also stopTracking() für eine Aktivität oder die onDestroy()-Methode eines Fragments aufrufen.

Zugriffsschlüssel nachverfolgen

So verwendest du beispielsweise den AccessTokenTracker anstelle eines Anmelde-Rückrufs:

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

Aktuelles Profil nachverfolgen

Du kannst den ProfileTracker auf ähnliche Weise verwenden, um Änderungen im aktuellen Profil nachzuverfolgen:

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