การติดตามโทเค็นการเข้าถึงและโปรไฟล์ในการเข้าสู่ระบบด้วย Facebook สำหรับ 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();
}