gpt4 book ai didi

javascript - 如何将 facebook 的所有 JS 功能完全加载到 Connect 网站

转载 作者:行者123 更新时间:2023-11-29 22:40:04 25 4
gpt4 key购买 nike

好吧,在这里,我正在尝试将一个网站与 facebook 连接集成,但我被困在了一些奇怪的 hell 之环中。

我在 fbc 网站上看到了 2 种初始化 js 的方法,我已经反复尝试过这两种方法,但它们只完成了我需要完成的全部工作的相反部分。

<script src="http://connect.facebook.net/en_US/all.js"></script>
...
$(document).ready(function(){
FB.init({'appId':'000',
'cookie':true,
'status':true,
});
});

这是官方文档所说的,但是这并没有加载所有的功能。 FB.Connect 未定义,ensureInit 不执行任何操作,我被搞砸了。我看到的另一个代码是

<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 文件会导致奇怪的错误和半初始化 session ,我不确定这两种不同类型的 FB.init 调用之间有什么区别...

谢谢!

最佳答案

您的第一个示例描述了最近(几个月前)引入的新 API 中做事的“新方式”,而您的第二个示例描述了旧 API 曾经是什么(现已弃用)。

现在加载FB js最好的方式是:

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'your app id', status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>

在加载 js 之前不会阻止页面加载。

不幸的是,没有办法同时兼顾两全其美,您应该尽可能开始为新项目使用新 API,因为对旧 API 的支持迟早会被取消。

您可以找到新的 API 文档 here .旧 API 的 90% 的功能都被继承(通常以不同的名称),但实际上缺少一些旧的好东西,例如 FB.ensureInit()。此外,一些旧的 API 功能现在需要使用 FQL .

关于javascript - 如何将 facebook 的所有 JS 功能完全加载到 Connect 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com