在此之前,我已經閱讀了this和this問題以解決下面和問題之前的問題。在Facebook中使用FBSession openActiveSessionWithReadPermissions處理無效的accessToken iOS 3.1.1 SDK
我的問題是,當的accessToken被過期(因爲到期日通過,或者通過手動刪除從我的Facebook應用中心的應用程序)下面的代碼:
if ([[FBSession activeSession] isOpen]) {
//do something
}
else {
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if(FB_ISSESSIONOPENWITHSTATE(status)) {
//do something
}
}
}];
}
獲取else塊用FBSession.activeSession打開,但執行'做某事'時,accessToken無效,因此請求獲得錯誤:HTTP狀態碼:400. 當我嘗試整個過程立即執行兩次FBSession請求權限(UIAlertView for iOS6在Safari中集成了Facebook,Facebook App或Facebook網站),其餘部分運行順利。
我的問題是爲什麼我必須做兩件事才能正常工作,以及爲什麼Facebook SDK在第一次無法檢測到activeSession和accessToken無效時。
謝謝大家提前!
非常感謝克里斯!它似乎工作,但不是第二次重試,但與第四次。我認爲它會在下一次SDK更新中修復。 – ozzotto
獲取錯誤代碼的方法似乎並不可靠。我認爲JSON格式不一致:錯誤域= com.facebook.sdk代碼= 5「操作無法完成(com.facebook.sdk錯誤5)」UserInfo = 0x12c81710 {com.facebook.sdk :ParsedJSONResponseKey =( { 體= { 誤差= { 代碼= 190; 消息= 「接入令牌無效的設備上。」; 類型= OAuthException; }; }; 代碼= 400; } ),com.facebook.sdk:HTTPStatusCode = 400} – MaxGabriel
- [__ NSArrayM objectForKeyedSubscript:]:無法識別的選擇器發送到實例 – MaxGabriel