在任何事情之前,我已经阅读了这个问题和这个问题来解决下面和提问之前的问题。
我的问题是,当 accessToken 过期时(或者因为过期日期过去,或者通过从我的 Facebook 应用中心手动删除应用程序)以下代码:
if ([[FBSession activeSession] isOpen]) {
//do something
}
else {
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if(FB_ISSESSIONOPENWITHSTATE(status)) {
//do something
}
}
}];
}
在 FBSession.activeSession 打开的情况下进入 else 块,但是当执行“做某事”时,accessToken 无效,因此请求出现错误:HTTP 状态代码:400。当我尝试立即执行整个过程两次时,FBSession 请求许可(iOS6 的 UIAlertView 集成了 facebook、Facebook 应用程序或 Safari 中的 Facebook 网站),其余运行顺利。
我担心的是为什么我必须做两次才能正常工作,以及为什么 Facebook SDK 无法在第一时间检测到 activeSession 和 accessToken 无效。
谢谢大家!