تتبع رموز الوصول والصفحات الشخصية في تسجيل دخول فيسبوك لنظام Android

إذا أردت أن يكون تطبيقك مواكبًا لرمز الوصول الحالي والصفحة الشخصية، يمكنك تنفيذ فئات AccessTokenTracker وProfileTracker.

تقوم هذه الفئات باستدعاء الرمز البرمجي عندما يطرأ تغيير على رمز الوصول أو الصفحة الشخصية. وتستخدم هذه الفئات داخليًا أدوات استقبال، لذا ستحتاج إلى استدعاء stopTracking() من النشاط أو استدعاء طريقة onDestroy() للجزء.

تتبع رموز الوصول

على سبيل المثال، لاستخدام AccessTokenTracker بدلاً من استخدام استدعاء تسجيل دخول:

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

تتبع الصفحة الشخصية الحالية

يمكنك استخدام ProfileTracker بطريقة مشابهة لتتبع التغييرات التي تطرأ على الصفحة الشخصية الحالية:

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