旧的JS SDK有一个名为FB.ensureInit的函数.新的SDK似乎没有这样的功能......我怎样才能确保在完全启动之前我不进行api调用?
我把它包含在每个页面的顶部:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $conf['fb']['appid']; ?>',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Canvas.setAutoResize();
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
Run Code Online (Sandbox Code Playgroud) 为什么我们需要在我们的Facebook应用程序中添加这些标签.这对标签的用途是什么.我创建了一个使用apprequest的应用程序,即使我没有在我的脚本前面添加这些标签,它也能正常工作.所以我真的很想知道为什么我们需要添加它们.谢谢.
我想为我正在使用的网络应用程序使用facebook共享插件,我只需要基本的共享按钮.该应用程序使用requirejs来加载javascript,所以我按照操作方法将facebook api url更改为在facebook docs上的代码片段中找到的那个.这不起作用,并且sdk抛出错误invalid version specified.这就是我的文件的样子.
main.js
require.config({
shim: {
'facebookshare' : {
exports: 'FB'
}
},
paths: {
'facebookshare': "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0"
}
});
require(['fb']);
Run Code Online (Sandbox Code Playgroud)
fb.js
define(['facebookshare'], function(facebook) {
document.body.innerHTML += '<div class="fb-share-button" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button"></div>';
});
Run Code Online (Sandbox Code Playgroud)
仅包含facebook共享插件和requirejs的最佳方法是什么?
我提到了以下问题,但没有一个提供具体的解决方案.未捕获的错误:未指定版本且版本错误.