Android용 Facebook 로그인의 액세스 토큰 및 프로필 추적

앱에서 현재 액세스 토큰과 프로필을 계속 추적하도록 하려면 AccessTokenTrackerProfileTracker 클래스를 구현할 수 있습니다.

액세스 토큰 또는 프로필이 변경될 때 이러한 클래스에서 코드를 호출합니다. 내부적으로 이러한 클래스에서는 수신호를 사용하므로, 액티비티에서 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();
}