使用 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}}