2012-02-21 40 views
0

我有一個選項可供我的遊戲用戶將成就發佈到他們的牆上。如果他們已登錄,即他們的令牌仍然處於活動狀態,則可以正常工作。但是,如果他們需要續訂令牌,應用程序將退出並在返回到應用程序之前加載Facebook身份驗證頁面一秒(如果他們已主動註銷,則只需在身份驗證頁面上單擊「確定」,否則會自動發生) 。Facebook身份驗證錯誤 - 無法完成操作

問題是,如果發生這種情況,遊戲返回時,請求失敗。但是,由於他們現在已經登錄,如果他們再次按下「分享到牆」按鈕,它可以正常工作。由失敗的請求輸出的錯誤消息它:

DIDLOGIN 
2012-02-21 12:01:33.502[18153:15803] Response received 
2012-02-21 12:01:33.502[18153:15803] Request did load raw response 
2012-02-21 12:01:33.502[18153:15803] Request failed, error: Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x9992010 {error=<CFBasicHash 0x99785e0 [0x2093b38]>{type = mutable dict, count = 3, 
entries => 
    2 : <CFString 0x9963370 [0x2093b38]>{contents = "type"} = <CFString 0x99952a0 [0x2093b38]>{contents = "OAuthException"} 
    3 : <CFString 0x99631e0 [0x2093b38]>{contents = "message"} = <CFString 0x997e5b0 [0x2093b38]>{contents = "An active access token must be used to query information about the current user."} 
    6 : <CFString 0x998c370 [0x2093b38]>{contents = "code"} = 2500 
} 
} 

我不知道爲什麼我得到一個OAuthException,當我剛剛成功授權它?

感謝您的幫助!

當您設置您把它送到了Facebook ..通過ACCES則params的字典

回答

0

好吧,我發現這個問題。至少我認爲我發現它,因爲它現在起作用,我只希望在這個過程中不會引入另一個錯誤。基本上我的登錄編碼是這樣的:

- (void)postAchievement:(NSString *)message withPicture:(NSString *)pictureURL { 
    //Set post to TRUE so the delegate posts when the method returns and configure the message. 
    DLog(@"Achievement message: %@", message); 
    self.postAchievement = TRUE; 
    self.achievementMessage = message; 
    self.wallPostPicURL = pictureURL; 
    [self fbLogin]; 
[facebook requestWithGraphPath:@"me" andDelegate:self]; 
} 

    // Save the user's credentials and expiration date 
- (void)fbDidLogin { 
    DLog(@"DIDLOGIN"); 
    self.isLoggedIn = TRUE; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
} 

fbDidLogin是當用戶已經登錄調用的委託方法的行[facebook requestWithGraphPath:@"me" andDelegate:self];是問題。我把它移到了fbDidLogin方法的末尾,現在它看起來很完美。

1

令牌也,,這樣

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           @"someText", 
           @"message", 
           [fb accessToken], 
           @"access_token",nil]; 
+0

嗯 - 試過了,它似乎沒有任何區別。我仍然得到同樣的錯誤。 – Smikey 2012-02-21 12:49:03

+0

謝謝親愛的。只需添加Access令牌。現在它工作 – 2012-12-06 10:38:30