Facebook Javascript SDK Not Loading
我刚刚开始使用Facebook SDK,我正在尝试使用抓取用户名和朋友列表的脚本。这是初始化代码我一起工作:Facebook Javascript SDK Not Loading
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-根元素在文档的顶部,脚本标记之外。 大约有一半时间,SDK加载正常,我在控制台中看到初始化和连接的消息。但是,另一半时间,我只看到“加载SDK”消息,没有别的,我认为这意味着SDK无论如何都无法正确加载。我也注意到,它导航到页面时加载,但很少刷新。
我的问题是:什么导致SDK不加载一些时间,我该如何解决这个问题?
据Facebook的关于使用Facebook的JavaScript SDK的最新documentation,该方法包括SDK异步已更新:
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
它不会立即明显,我为什么会更可靠相比你的方法,但我可以说这是我在我的网站上使用,我没有经历过任何间歇性问题,
它花了一些时间来完全解压缩代码示例,但它看起来像唯一的实质性区别是这两种方法之间的设置'js.async = true' – 2013-04-29 20:46:51
感谢您的答复。它看起来并没有做什么,因为同样的事情正在发生,我没有看到“初始化”信息。我尝试了其他方法来获取我在其他网站上找到的SDK,但都无济于事。 – Maccyjam 2013-04-29 20:54:10
嗯......你没有指定,你也已经实现了所需的'fb-root'元素在文档的正文中......您确实有其中之一,对吧? – Lix 2013-04-28 19:00:10
噢,是的,我确实,对不起,没有。我将编辑主要问题。 – Maccyjam 2013-04-28 19:05:38