我正在使用 PHP 成功地对用户进行身份验证,获取访问令牌等。但是对于我的应用程序的一部分,我正在使用 Javascript 来加载图像/朋友等。过去我对 getLoginStatus 没有任何问题,但现在它又回来了
status: unknown
大约 80% 的时间。它在 Firefox 中似乎比在其他浏览器中运行得更好,但我仍然让它在那里发生,所以我认为这只是侥幸。我能想到的唯一可能会影响这一点的事情是在有人尝试使用 php 登录之前尝试注销以前的用户(但是我尝试还原文件并在没有它的情况下进行测试,但仍然无法正常工作,所以除非它以某种方式弄乱了我的持久数据,否则我不知道):
$fb_key = 'fbsr_'.$facebookConfig['app_id'];
setcookie($fb_key, '', time()-3600);
$facebook->destroySession();
似乎在谷歌上找不到任何关于此的内容,所以我真的不知道发生了什么。在这一点上,也许我只需要使用我通过 php 获得的访问令牌来通过 javascript api 进行查询(因为我仍然可以成功地得到它)。我现在要调查一下,但与此同时,我想我会发帖以防万一有人有任何想法!
这是我的 JS 代码:
window.fbAsyncInit = function() {
FB.init({
appId : pre_fbAppID, // App ID
channelUrl : pre_absURL + '/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
doFacebookLogin();
//Facebook can notify us when the user logs in and logs out
FB.Event.subscribe('auth.login', function(response) {
// do something with response
});
FB.Event.subscribe('auth.logout', function(response) {
// do something with response
});
function doFacebookLogin(){
FB.getLoginStatus(function(response) {
checkLoginResponse(response);
}, true);
}
...