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新的令牌系统来玩得开心,但是这没有取得任何成果。

所以我觉得这是第 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