我刚刚开始使用 Facebook SDK,我正在尝试使用一个脚本来获取用户的姓名和朋友的列表。这是我正在使用的初始化代码:
window.fbAsyncInit = function()
{
console.log("initialising");
FB.init(
{
appId : 'APPID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : false // dont parse XFBML
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
console.log("RESPONSE IS CONNECTED!");
} else if (response.status === 'not_authorized') {
console.log("NOT AUTHORIZED");
} else {
console.log("NOT LOGGED IN");
FB.login();
}
});
};
(function(d, s, id){
console.log("Loading SDK!");
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
我在文档顶部有一个 fb-root 元素,在脚本标签之外。大约一半的时间,SDK 加载正常,我在控制台中看到初始化和连接消息。但是,在另一半时间,我只看到“正在加载 SDK”消息而没有其他任何内容,我认为这意味着无论出于何种原因,SDK 都没有正确加载。我还注意到它在导航到页面时加载,但很少在刷新时加载。
我的问题是:是什么导致 SDK 有时无法加载,我该如何解决这个问题?