iOS fb ライブラリを使用すると、facebook から次の応答が返されます。
{"error":{"message":"Error validating access token: The session was invalidated explicitly using an API call.","type":"OAuthException","code":190,"error_subcode":466}}
このリクエストを行うために、以下のコードを使用しています。
facebook = [[Facebook alloc] initWithAppId:@"xxxxxx" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
NSLog(@"FB: taking saved token");
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];
} else {
NSLog(@"FB: session already valid");
}
[facebook requestWithGraphPath:@"me" andDelegate:self];
以下に、私が実装した fb コールバックからのいくつかのログを示します。
FB: taking saved token
FB: session already valid
FB: didLoadRawResponse
FB: didFailWithError
以前にアプリのダッシュボードからアプリのアクセスを取り消していたので、isSessionValid 呼び出しが false を返すことを期待していました。ただし、セッションが有効であるとは信じていません。ここで「セッション」の意味を誤解しているに違いありません。
extendAccessTokenIfNeeded
私はまた、新しいトークン システムでうまくプレイするために呼び出しを試みましたが、これは何も達成しませんでした。
だから、これはcatch 22の状況だと思います.facebookはトークンが良いと言っていますが、グラフの呼び出しは失敗します. どうにかしてトークン無効エラー コードのユニバースを処理し、再度呼び出すauthorize
必要がありますか?
Facebookの「ドキュメンテーション」を使って調べようとすると、私は少し気が狂ってしまいました。
他の人はこの問題をどのように扱っていますか?
編集1:
次のエラーが表示され、前のエラーを取得できません。これは、'remove offline_access' 移行をオンにしたことが原因である可能性があります。
しかし、基本的に問題は同じです。
FB: {"error":{"message":"Error validating access token: User xxxxx has not authorized application xxxxxx.","type":"OAuthException","code":190,"error_subcode":458}}