2012-11-23 68 views
0

新的Facebook SDK爲Android(3.0)已經過時了很多的老方法,包括setAccessToken方法。造成這種情況的更換(我認爲)是方法openWithImportedAccessToken如何使用在新的Facebook SDK的方法「openWithImportedAccessToken」爲Android 3.02

https://developers.facebook.com/docs/reference/android/3.0/Session#openWithImportedAccessToken(String, Date, Date, AccessTokenSource, List, StatusCallback)

有沒有人有任何使用這個例子?特別是如何獲得訪問令牌的到期時間和上次刷新時間?

回答

1

如果你有特定參數的數據,也有合理的默認值,你可以在這裏填寫導致次優的,但並非太糟糕行爲。

請記住,在升級到3.x Android SDK之後,您應該只調用此API 第一個,以便從之前存儲它的位置導入令牌。之後,SDK默認管理令牌緩存。因此,任何次優行爲應該是本次升級的一次本地化。

提供你知道的數據。因爲你不知道是什麼,它主要是沒關係規定:

  • 的有效期限爲60天,從現在
  • 現在最後更新時間爲
  • 的AccessTokenSource是FACEBOOK_APPLICATION
  • 的權限列表爲空

請注意,如果您始終要求相同的權限並因此知道舊令牌具有的權限,請使用這些權限。

這是更好,如果你能爲這些參數提供正確的值,但缺點通常並不可怕。這裏有不利之處躺在這個API:

  • 指定的壞處是,過期時間晚於它是:如果令牌已過期,您可提出不管怎樣,有Facebook的服務回報的錯誤,而不是立即在客戶端發現它。
  • 指定的最後更新的時間的不足之處是最近的比它:SDK會嘗試刷新第一個請求令牌,而不是等待24小時。
  • 將AccessTokenSource指定爲FACEBOOK_APPLICATION的缺點:如果令牌來自WebView,則SDK將嘗試刷新令牌,並且操作將失敗。最終令牌將過期,並且後續登錄將更正AccessTokenSource值。
  • 指定空權限的缺點:當您要執行操作時,您應該檢查您是否有權執行操作,如果沒有,您應該調用Session.reauthorize()來請求權限。如果您調用openWithImportedAccessToken()時使用空列表(或實際擁有更少的權限),那麼您會認爲您沒有權限,並會再次詢問用戶是否有權限。只要這是用戶在執行預期此權限的操作的上下文中,這對用戶來說應該不會太刺激。
1

我們的文檔here告訴您如何檢索/調試訪問令牌檢索元數據,如過期和單據出具。如果事先沒有這些字段,可以使用此端點。

相關問題