如果我登录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是什么,以便我可以检查它是否在帖子的喜欢列表中。
答案 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 就可以了。