无法从iOS发送facebook apprequest,因为FBSession.activeSession.isOpen给出了false

时间:2012-11-20 05:34:16

标签: ios facebook request

我的应用只能在用户登录Facebook的第一次运行期间发送应用请求。重新启动应用程序后,应用程序请求将停止,因为FBSession.activeSession.isOpen为false。

虽然,FBSession.activeSession.isOpen仍然提供false,但应用程序可以执行其他操作,例如发布到墙上,获取好友列表等。只有它无法发送应用程序请求。它仍然有一个有效的访问令牌。

有什么想法吗?

2 个答案:

答案 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.

这有帮助吗?