我的应用只能在用户登录Facebook的第一次运行期间发送应用请求。重新启动应用程序后,应用程序请求将停止,因为FBSession.activeSession.isOpen为false。
虽然,FBSession.activeSession.isOpen仍然提供false,但应用程序可以执行其他操作,例如发布到墙上,获取好友列表等。只有它无法发送应用程序请求。它仍然有一个有效的访问令牌。
有什么想法吗?
答案 0 :(得分:2)
你说" FBSession.activeSession.isOpen给出了假",但是,只是为了确定:你什么时候运行这个测试?当您对登录请求的调用返回时,或者在异步请求的回调中?
如果在请求的回调之外完成,可能会说会话尚未打开。然后,请求正确返回,这意味着对另一个FB请求的任何进一步调用都会成功。
这有帮助吗?
如果没有,可能会对您的代码进行概述。
答案 1 :(得分:1)
好的,在上一个回答的评论旁边:
是的,那就是你所说的。但是在你的代码中你检查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.
这有帮助吗?