0

我正在创建应用程序,用于汇总来自不同社交网络配置文件的数据。因此,我创建了一个界面,客户可以选择允许我的应用程序访问哪个社交网络配置文件。界面有一个用户点击来授权应用程序的按钮或者一个按钮,如果用户改变了她/他关于授予我的应用程序权限的想法,它会撤销授予我的应用程序的特权。Facebook JavaScript SDK - getLoginStatus始终返回未知

我的流程如下:

  • 在页面加载请问Facebook在
    • 用户是否登录如果用户在一个选项来断开提供
    • 如果用户登录没有登录(或状态未知< - 这很重要),提供登录选项。

这就像它应该。但一件奇怪的事情发生。

起初

FB.getLoginStatus(loginStatusCallback, true); 

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

对于登录我用

FB.login(loginCallback); 

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

+0

正如你所看到的 - Facebook的往返参数设置为true。 SDK已正确初始化。问题不在应用程序端,而在SDK端。 – Rouz

回答

3

看起来问题不在我身边,因为它没有修改代码。问题是,我曾经使用FB.logout(),而不是只是从应用程序Facebook注销我只是认为我退出。

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

从申请断开连接的用户我不使用FB.logout(),而不是我撤销权限与

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

现在一切工作像它应该...但对我来说,这看起来像SDK的问题。 ..

相关问题