我使用PHP成功驗證用戶,獲取訪問令牌等。對於我的應用程序的一部分,但是我使用Javascript來加載圖像/朋友等。在過去,我曾與getLoginStatus沒有問題,但現在它的返回Facebook Javascript SDK 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);
}
...
我已經更新了我的答案 – Roni 2012-04-08 10:21:55
這不得不一切跟我用的是PHP的認證,我不知道哪一部分它恰好,但當我切換到只使用JS身份驗證,而不是PHP身份驗證(我仍然通過PHP檢索數據,但只是沒有登錄使用它),它完全解決了這個問題。 – 2012-06-21 10:50:20