Facebook認証エラー - 操作は完了できませんでした
-
28-10-2019 - |
質問
私のゲームには、ユーザーが自分の壁に成果を投稿するためのオプションがあります。それらがログインされている場合、つまり、トークンがまだアクティブであるため、正常に機能します。ただし、トークンを更新する必要がある場合、アプリに戻る前にアプリが終了し、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];
所属していません StackOverflow