【发布时间】:2012-09-18 17:20:16
【问题描述】:
我正在使用 3.1 Facebook SDK,在“设置”中设置了 iOS 6 Facebook,并且我的应用已获得授权。
完美执行:
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *fbSession, FBSessionState fbState, NSError *error) { ... }
但是现在当我尝试获取“我”信息时,我遇到了一个错误:
com.facebook.sdk:ParsedJSONResponseKey = {
body = {
error = {
code = 190;
"error_subcode" = 463;
message = "Error validating access token: Session has expired at unix time 1348704000. The current unix time is 1348706984.";
type = OAuthException;
};
};
code = 400;
}
如果我查看[error code],它等于5。我不应该在刚登录后获得有效的访问令牌吗?我需要调用 reauthorize 吗?
更新:重新授权没有帮助。奇怪的是,我的 activeSession 的 accessToken 总是一样的。尽管调用了 closeAndClearToken。
【问题讨论】:
-
要开始诊断,您能否记录您获得的 access_token 并将其粘贴到 developers.facebook.com/tools/debug - 时间戳就在那里?
-
好提示。现在问题已经消失了,我需要重新创建它。下次看到你的建议我会试试的。
-
我在使用 iPhone5/iOS6 时遇到了同样的问题。不过,这似乎很零星。如果您发现有关此问题的更多信息,请告诉我,我也会这样做。
-
我遇到了完全相同的问题。看起来 accessToken 缓存在 NSUserDefaults 中并由 FBSession 检索,即使
closeAndClearToken应该核对它。 -
这里是直接在 SDK 中修复此问题的更新 (3.1.1):github.com/downloads/facebook/facebook-ios-sdk/… 谢谢!!