首页 文章

Facebook JavaScript SDK - getLoginStatus始终返回未知

提问于
浏览
0

我正在创建将聚合来自不同社交网络配置文件的数据的应用程序 . 所以我创建了一个界面,客户端可以选择允许我的应用程序访问哪个社交网络配置文件 . 界面有一个用户点击授权应用程序的按钮,或者一个按钮,如果用户改变了他/她对我的应用程序权限的看法,就会撤销对我的应用程序授予的权限 .

我的流程如下:

  • 在页面加载时,我询问Facebook用户是否已登录

  • 如果用户已登录,则提供断开连接选项

  • 如果用户未登录(或状态未知< - 这很重要),则提供登录选项 .

而这就像应该的那样 . 但是奇怪的事情发生了 .

一开始

FB.getLoginStatus(loginStatusCallback, true);

function loginStatusCallback(response) {
    if(response.status == 'not_authorized') {
       ....
    } else if(response.status == 'unknown') {
       ....
    } else {
       ....
    }
}

登录我用

FB.login(loginCallback);

登录成功,我会采取相应行动 . 但是如果我重新加载页面response.status将是'unknown',即使我登录到Facebook并且我的应用程序在登录Facebook上的已记录应用程序列表中 . 据我所知,如果我没有登录到Facebook(这相当于我的应用程序中未连接),SDK文档'unknown'应该是响应 . 因此,即使用户已经登录,他也会被打扰再次登录,这是不可接受的 .

1 回答

  • 3

    看起来问题不在我身边,因为它修复了没有代码更改 . 问题是我曾经使用过FB.logout(),而不是仅仅将我从应用程序中注销掉,而Facebook认为我已经注销了 .

    重新登录我并没有改变一件事 . 我已经清除了浏览器中的所有cookie,并重新登录并且问题不复存在 .

    为了断开用户与应用程序的连接,我不使用FB.logout()而是撤销权限

    FB.api("/me/permissions", "delete", logoutCallback);
    

    现在一切都像它应该......但对我来说这看起来像SDK的一个问题......

相关问题