我有一個難題。困難的手段,我通過網絡和StackOverflow搜索以及整個FBJS SDK文檔,並沒有找到答案。FB.getLoginStatus不會觸發回調函數
我正在構建一個頁面選項卡應用程序,我想讓粉絲來rsvp事件。所以我必須檢查用戶是否登錄,如果沒有,我必須登錄。這聽起來很簡單,但FB.getLoginStatus不會觸發回調函數。這是代碼摘錄:
FB.init({
appId: window.appID,
status: true,
xfbml: true,
cookie: true,
oauth: true,
channelUrl: 'http://example.com/fb/channel.html'
});
,然後我簡單 - 在用戶點擊按鈕後,當然 - 撥打FB.getLoginStatus,但似乎並沒有做任何事情。
我已經檢查過沙箱模式,FB.init成功,應用程序設置和開發環境中的URL。我可以調用FB.ui,儘管FB.ui使用方法:'oauth'我收到一條錯誤消息,說「」redirect_uri「參數不能與」next「參數結合使用,而此參數已被棄用。」這很奇怪,因爲我沒有使用「下一個」參數。但是當我在undefined旁邊設置時,它工作正常,我得到了窗口,但它顯示「給定URL不被應用程序配置允許」。期望從那以後,我可以登錄,然後我有access_token。但在新窗口中,getLoginStatus仍然不起任何作用。
因此,歡迎任何意見。
感謝, 塔馬斯
UPDATE:
function onBodyLoad() { //on body onload
FB.init({
appId: window.appID,
status: true,
xfbml: true,
cookie: true,
oauth: true,
channelUrl: 'http://example.com/fb/channel.html'
});
}
...
function getName() { // on button onclick
FB.getLoginStatus(function(response){
if (response.authResponse)
{
window.loggedIn = true;
debugString('Logged in');
} else
{
window.loggedIn=false;
debugString('Not logged in');
}
}, true);
if (window.loggedIn === undefined) {
debugString('getLoginStatus did not exec'); // I always get this message
}
}
更新2:我創建了一個新的應用程序在不同的URL,它被配置爲一個獨立的網站。這些代碼完美工作,我可以得到LoginStatus,我可以登錄等等。在FB的上下文中以及在獨立網站中使用FB JavaScript SDK有什麼區別?
你會提供更多的代碼嗎? – ifaour