나는Android 앱에서 extendAccessTokenIfNeeded를 사용하여 Facebook 토큰을 확장 할 수 있습니까?
사람이 성공적으로 새로 고쳐했습니다
내 질문 ...이 페이스 북/안드로이드 개발자의 많은 영향을 미칠 수 있으며 아직 주제에 그 많은 논의가있을 것 같지 않습니다 생각 토큰은 extendAccessTokenIfNeeded 함수를 사용합니까? 당신이 성공했다면, 어떤 버전의 장치 (또는 에뮬레이터)가 실행되고 있었습니까?
배경
은 내가 offline_access 권한은 5 월 1 일 2012 년부터 더 이상 사용되지 않습니다와 페이스 북은 최신 SDK로 업그레이드를 권장 말 페이스 북에서 이메일을 받았습니다. 벌금.
최신 SDK로 업그레이드하면 공식적인 Facebook 응용 프로그램이 내 장치에 설치되고 (결국!) Single Sign On이 정상적으로 작동하는 것으로 보입니다. 나는 다시 OK 인 60 일 토큰을 받고 있습니다.
extendAccessTokenIfNeeded (컨텍스트 컨텍스트, ServiceListener serviceListener)를 사용하려고 할 때 문제가 발생했습니다. 나는 더 오래 만료 된 시간 동안 나의 토큰을 새롭게 할 수 없었다. 시도 사이에 24 시간을 기다렸지 만 토큰은 새로 고침되지 않습니다. 새로 고친 토큰을 얻을 수있는 유일한 방법은 로그 아웃하고 로그인하는 것입니다. 이것은 또한 예제 프로젝트 "Hackbook"을 사용했을 때도 발생했습니다.
가장 명백한 대답은 내가 뭔가 잘못하고 있지만, bug report이 Facebook에 제출되었다는 것입니다. "shouldExtendAccessToken은 사실 거의 항상 false를 반환합니다." 이 보고서는 우선 순위 "위시리스트"를 받았습니다. Facebook documentation about offline_access deprecation 토큰에
extendAccessTokenAsNeeded 대안()
그래프에 API를 사용하여 확장 될 수있다. 그러나이 URL에는 disadvantage of needing the "App Secret"이 포함됩니다. 장점은 사용자가 공식 Facebook 앱을 기기에 설치하지 않아도된다는 것입니다.
다른 아이디어와 항상 true를 반환하는 Facebook.java에서 extendAccessTokenIfNeeded 기능을 변경하여 문제
, 나는 내가 한 번 새로 고침을 거 같아요. (이 동작을 반복하지 않기 때문에 나는 "생각"말하는 이유는 내가 내가 또 다른 성공의 기회 전에 다른 24 시간 기다릴 필요가 의심)
나는 Hackbook이 수입 할 AndroidHttpClient 필요하다는 것을 알 수 있습니다. API 8 이상에서만 사용할 수 있습니다. 이 말은이며 Facebook SSO (특히 토큰 새로 고침)는 API 8 이상이 설치된 장치에서만 작동 할 가능성이 있습니까?
Facebook.apk included in the SDK은 꽤 오래되었습니다. API 8 이상을 실행하는 에뮬레이터에서 토큰이 새로 고쳐지지 않는 이유는 무엇일까요?
마지막으로,이 모든 것은 공식 Facebook 앱이 설치된 사람들과 관련이 있습니다. 다른 방법은 공식 Facebook 앱이없는 사람들을 위해 완료해야합니다 (지금 불평하고 있습니다!)
관련 페이스 북은
Facebook-Android-SDK at GitHub
Facebook offline_access permission deprecation
,536 링크관련 스택 오버플로가
Facebook 60 day access token and Deprecated Offline_Access
Facebook access token can not be extended
How would offline_access work after deprecation after May 1st?
Facebook access token can not be extended
Protecting app secret for extendAccessToken usage (Java/Android)
"Facebook.java의 extendAccessTokenIfNeeded 함수를 항상 true로 변경함으로써, 나는 그것을 한 번 새로 고쳐야한다고 생각합니다. (생각하는 이유는 그것이 동작을 반복하지 않기 때문에 내가해야한다고 생각합니다. 다른 성공의 기회가 있기 전에 또 다른 24 시간을 기다리십시오.) "재시험하셨습니까? – nmr