2

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}}
4

0 に答える 0