2012-07-25 3 views
0

나는 액세스 토큰의 만료 날짜에 대한 더 이상의 정보를 얻지 못한다는 것을 깨달았습니다. 정확하게 저는 아래 코드에 표시된대로 DialogListener 콜백을 사용하여 authorize() 메서드를 호출하는 안드로이드 용 facebook SDK에 대해 이야기합니다.Facebook의 만료 날짜는 0입니다.

저는 몇 주 동안 그것을 보지 못했습니다. 이전에 작동하고 있었음을 알았습니다. 이제는 프로젝트에 돌아와서 매번 facebook.getAccessExpires()이라는 콜을 찾았습니다.

내 첫 번째 생각은 API가 손상되어 일부 변경 사항이 적용된 것으로 나타났습니다. 그러나 거의 동일한 연령대의 iPhone 프로젝트를 사용하면 만료일이있는 것으로 보입니다. (내가 객관적으로 기술 부족으로 볼 수있는 것에서 ^^).

다음은 이번에 FB 지원을 구현하기 시작했기 때문에 facebook's github에서 커밋 5a72863793521a96f5a9f4fb72960a27b98e441d을 확인한 결과, SDK가 일부 극적인 방식으로 변경되었는지 확인할 수있는 방법이라고 생각했습니다.

지금까지 내 모든 노력은 헛된 것이 었으며이 버그를 추적해야하는 좋은 이유를 생각할 수 없습니다.

DialogListener dialogListener = new DialogListener(){ 
    @Override 
    public void onComplete(Bundle values) { 
     mPrefsEdit.putString(USER_ACCESS_TOKEN, facebook.getAccessToken()) 
        .putLong(USER_ACCESS_EXPIR, facebook.getAccessExpires()) 
        .commit(); 
     } 
    //other required overrides 
} 

Facebook facebook = new Facebook(APP_ID);  
facebook.authorize(activity, APP_PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, dialogListener); 

답변

0

페이스 북은 offline access token permission의 액세스를 제공합니다. 그래서 액세스 토큰은 매우 정렬 시간 (2-8 시간) 동안 유효합니다. 자세한 내용은 facebook blog을 참조하십시오.

주된 이유 facebook.getAccessExpires()은 항상 0을 반환합니다.

+0

Sweet! 사실 나는 생각할 물건이 더 많지 않지만 빠르고 명확한 대답입니다. 링크 주셔서 감사합니다! :) – yoshi