好吧,在这里,我试图整合一个网站与Facebook连接,我被困在一些奇怪的地狱之环。
我已经看到了2种方法在fbc网站上初始化的js,我已经尝试了两次,但他们只做相反的一半,整个工作,我需要做的。
<script src="http://connect.facebook.net/en_US/all.js"></script>
...
$(document).ready(function(){
FB.init({'appId':'000',
'cookie':true,
'status':true,
});
});
这就是官方文档所说的,但是这并没有加载所有的功能。连接是未定义的,确保Init不做任何事情,我完蛋了。我看到的另一个代码是:
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
...
$(document).ready(function(){
FB.init("000", "/xd_receiver.htm");
});
乍一看,这似乎很棒,因为它加载了FB.Connect特性,但似乎这是它加载的唯一一组特性,因为FB.ui未定义,FB.getLoginStatus未定义,所有其他“核心函数”未定义。
尝试同时包含两个不同的js文件会导致奇怪的错误和半初始化的会话。我不确定这两种不同类型的FB.init调用有什么区别。
谢谢大家!
3条答案
按热度按时间qnyhuwrf1#
你的第一个例子描述了最近(几个月前)引入的新API中的“新方式”,而你的第二个例子是旧API曾经是什么(现在不推荐使用)。
现在加载FB js的最佳方法是:
这不会阻止页面加载,直到加载js。
不幸的是,没有办法从两个世界中获得最好的,如果可能的话,你应该开始为新项目使用新的API,因为对旧API的支持迟早会被放弃。
您可以找到新的API文档here。旧API的90%的功能都被继承下来了(通常是以不同的名称),但一些旧的好东西,如
FB.ensureInit()
实际上已经消失了。此外,一些旧的API功能现在需要使用FQL。whlutmcx2#
第一个例子是使用新的JS SDK,这是您最想使用的。FeatureLoader URL将为您提供旧版SDK。它们不能在您发现的同时加载,因此只需使用最新和最好的新版本。
wz3gfoph3#
原来我是majorly混淆,这两个文件和函数调用适用于2个不同版本的js库...因此,当我使用新版本时,我不应该期望FB.Connect被定义,当我使用旧版本时,我不应该期望FB.ui被定义...
我本来可以节省一天的时间,如果文档更清楚,有很多更少的链接腐烂。
干杯!