我想,這可能影響了很多的Facebook/Android開發,但似乎沒有要上話題,很多討論......是否可以在Android應用程序中使用extendAccessTokenIfNeeded擴展Facebook令牌?
我的問題
有沒有人成功刷新一個使用extendAccessTokenIfNeeded函數的令牌?如果您確實取得了成功,那麼設備(或模擬器)運行的版本是什麼?
背景
我收到一封電子郵件從Facebook稱offline_access許可將從2012年5月1日被棄用和Facebook建議升級到最新的SDK。精細。
我升級到最新的SDK,官方的Facebook應用程序安裝在我的設備上,並且(最終!)單一登錄似乎工作正常。我正在接受60天的代幣,這也是可以的。
當我嘗試使用extendAccessTokenIfNeeded(上下文上下文,ServiceListener serviceListener)時啓動問題。我無法讓它在更長的到期時間內刷新我的代幣。我在兩次嘗試之間等了24小時,但令牌不會刷新。我可以獲得刷新令牌的唯一方法是註銷並登錄。這也發生在我使用示例項目「Hackbook」時。
最明顯的答案是我做錯了什麼,但是,bug report已提交給Facebook,表示...「shouldExtendAccessToken實際上幾乎總是會返回false」。這份報告已被列爲優先「願望清單」。
替代的extendAccessTokenAsNeeded()
在Facebook documentation about offline_access deprecation令牌可以使用Graph API進行擴展。但是,該網址中包含disadvantage of needing the "App Secret"。一個好處是用戶不需要在他們的設備上安裝官方Facebook應用程序。
其他的想法和顧慮
通過改變Facebook.java的extendAccessTokenIfNeeded函數總是返回true,我覺得我得到它刷新一次。 (我說「想」的原因是因爲它不會重複的行爲,我懷疑我有另一個成功的機會之前要等待另一個24小時)
我注意到Hackbook要求AndroidHttpClient是 進口。這僅適用於API 8以上版本。這是否意味着 Facebook SSO(特別是令牌刷新)只能在API 8及更高版本的設備上運行?
Facebook.apk included in the SDK已經很老了。也許這就是爲什麼令牌不會在運行API 8和更高版本的模擬器上刷新的原因?
最後,所有這些只涉及那些安裝了官方Facebook應用程序 的人!另一種方法需要爲那些沒有官方Facebook應用程序的人完成(現在只是抱怨!)
相關鏈接Facebook的
Facebook-Android-SDK at GitHub
Facebook offline_access permission deprecation
相關堆棧溢出的問題
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,我想我會刷新一次。(我之所以說」think「是因爲它不會重複該行爲,我懷疑我必須再等24小時才能再獲得成功)「你有沒有重新測試過? – nmr 2012-04-20 23:44:19