我的应用程序只能在用户登录 facebook 的第一次运行期间发送应用程序请求。重新启动应用程序后,应用程序请求将停止,因为 FBSession.activeSession.isOpen 给出错误。
虽然 FBSession.activeSession.isOpen 给出了 false ,但应用程序仍然可以执行其他操作,例如发帖、获取好友列表等。只是它不能发送应用程序请求。而且它仍然有一个有效的访问令牌。
有任何想法吗?
你说“FBSession.activeSession.isOpen 给出错误”,但是,为了确定:你什么时候运行这个测试?当您对登录请求的调用返回时,或者在异步请求的回调中?
如果它在请求的回调之外完成,它可能会说会话尚未打开。然后,请求正确返回,这意味着对另一个 FB 请求的任何进一步调用都会成功。
这有帮助吗?
如果没有,也许可以对您的代码进行概述。
好的,在您对上一个答案的评论旁边:
是的,这就是你已经说过的。但是在你的代码中,你在哪里检查 isOpen?要期望一个适当的值,它应该是这样的:
FBSession openActiveSessionWithReadPermissions:_readPerms allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
// here is the proper place to check the isOpen boolean, and to go on with your program, including the app request
}];
// not the proper place to check isOpen.
这有帮助吗?