FB.getLoginStatus总是返回status ='unknown'

时间:2012-02-18 01:17:41

标签: javascript facebook-javascript-sdk facebook-login

如果我登录facebook.com,我希望调用FB.getLoginStatus会返回status ='not_authorized'。相反,它返回status ='unknown',即使我为'force'参数传递true。

如果我调用FB.login,然后调用FB.getLoginStatus,我会得到status ='connected'。有道理。

如果我调用FB.login,重新加载页面,然后调用FB.getLoginStatus,我得到status ='unknown'。没有意义。如果我添加'true'作为第二个参数(即force),我仍然得到status ='unknown'。 (在这种情况下,我希望status ='not_authorized'。)

在实践中似乎没有办法获得status ='not_authorized'。

我做错了吗?这是FB.getLoginStatus或其文档中的错误吗?

这是一个最小的测试页面: http://pastebin.com/NqiBXni2

上下文:

我正在编写一个网站小部件,显示公共Facebook页面的帖子。 (这可以在不通过app访问令牌提示用户的情况下访问。)每个帖子都有一个“赞”/“不同”链接。为了确定是否显示“喜欢”或“不喜欢”,我需要知道浏览用户的Facebook ID是什么,以便我可以检查它是否在帖子的喜欢列表中。

4 个答案:

答案 0 :(得分:8)

也许您已禁用第三方Cookie。

答案 1 :(得分:1)

为了详细阐述David的答案,Facebook将第3方Cookie禁用时将其描述为“by design”结果。

不幸的是,我不确定最优雅的处理方法 - 至少在我的网站中,我需要一个誓言令牌来加载一些数据。

答案 2 :(得分:0)

我有类似的问题,即使没有禁用第三方cookie。我绕过的做法是:如果我得到“未知”响应,我将调用FB.login并在其中再次调用FB.loginStatus。这一次,FB返回了正确的值。

答案 3 :(得分:0)

您使用的是 http 还是 https?

请勿使用 http 作为您的开发主机!

只需使用 https 就可以了。