2012-03-29 31 views
2

我做了一些測試,結果我發現與Facebook的文檔相矛盾。 https://developers.facebook.com/roadmap/offline-access-removal/5月1日後,offline_access如何在棄用後運行?

如果我們啓用「棄用離線訪問:」並要求offline_access,則在移動客戶端,我們會自動獲取有效期爲60天的令牌,而無需升級SDK。看起來Facebook讓客戶更容易,不需要升級。這就是Facebook上所說的。 「遷移到此功能的應用程序將不再被要求提供offline_access,它們將獲得長時間使用的訪問令牌,如果用戶一段時間未使用該應用程序,則該訪問令牌將過期。」「一段時間」沒有記錄。

如果我升級SDK,則不會觸發extendsToken方法,因爲令牌有效期爲60天。如果我們強制擴展令牌,我們從Facebook得到了以下錯誤,我不知道它的含義。

Error Domain=facebookErrDomain Code=10 "The operation couldn’t be completed. (facebookErrDomain error 10.)" UserInfo=0x1404bb70 {request_args=(
     { 
     key = method; 
     value = "auth.extendSSOAccessToken"; 
    }, 
     { 
     key = sdk; 
     value = ios; 
    }, 
     { 
     key = "sdk_version"; 
     value = 2; 
    }, 
     { 
     key = "access_token"; 
     value = AAACiLiBjLHABAOo3NZCSSLlRddFZCQUsky0q9sogtzHIFGpNNoeYUqtt2X2QUvxMg8AwsQqSLP3oe0cxUoLIXwVZC3xDGuBC3QOvFgELwZDZD; 
    }, 
     { 
     key = format; 
     value = json; 
    } 
), error_code=10, error_msg=The access token was not obtained using single sign-on} 

如果我們沒有請求「offline_access」,令牌將在2小時內過期。

您的觀察結果如何?任何想法?來自Facebook的任何見解?

回答

1

本節標誌着that document「如果你先前沒有要求offline_access」說明如何來交換2小時令牌60天的令牌:(注意,在經過2小時60天值可能會在未來改變)

https://developers.facebook.com/roadmap/offline-access-removal/#extend_token

剛剛接觸

https://graph.facebook.com/oauth/access_token?    
     client_id=APP_ID& 
     client_secret=APP_SECRET& 
     grant_type=fb_exchange_token& 
     fb_exchange_token=EXISTING_ACCESS_TOKEN 

並返回將有一個較長的到期令牌(也可能是同樣具有較長到期或新的令牌,喲你應該處理這兩種情況)

+0

謝謝lgy。我沒有得到2小時的令牌,我得到了60天。我想我不需要經歷麻煩升級SDK。我對嗎? – 2012-03-29 22:01:44

+0

我認爲給予iOS SDK和Android SDK的標記默認時間更長;如果是這樣你就沒事了,不必進行更改 – Igy 2012-03-29 22:11:49

+0

上面的代碼是否也與Android相關? – Mel 2012-04-01 05:32:27

相關問題