質問

私のゲームには、ユーザーが自分の壁に成果を投稿するためのオプションがあります。それらがログインされている場合、つまり、トークンがまだアクティブであるため、正常に機能します。ただし、トークンを更新する必要がある場合、アプリに戻る前にアプリが終了し、Facebook認証ページが1秒間ロードされます(アクティブにログアウトした場合は、認証ページでOKをクリックする必要があります。 。

問題は、これが発生した場合、ゲームが返されると、リクエストが失敗することです。しかし、彼らは今ではログインしているので、2回目の「壁に共有」ボタンを押すと、正常に動作します。失敗した要求によるエラーメッセージ出力それ:

    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を取得しているのかわかりませんか?

助けてくれてありがとう!

役に立ちましたか?

解決 2

まあ、私は問題を見つけました。少なくとも、私はそれを見つけたと思います。現在は機能しているので、プロセスに別のエラーを導入しなかったことを願っています。基本的に私のログインコーディングは次のように見えました:

    - (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メソッドの終わりに移動しましたが、今では完全に機能しているようです。

他のヒント

Facebookに送信するParamsの辞書を設定すると、ACCESトークンも渡します。

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"someText",  
                               @"message",
                               [fb accessToken], 
                               @"access_token",nil];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top