指定的版本无效,facebook分享插件错误

我想为我正在使用的networking应用程序使用Facebook共享插件,我只需要基本的共享button。 该应用程序使用requirejs加载JavaScript,所以我跟着怎么做,并更改了Facebook的APIurl的代码片段在Facebook 文档中find 。 这不起作用,sdk抛出invalid version specified错误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']); 

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>'; }); 

什么是最好的方式包括只有facebook的sharej插件与requirejs?

我提到了下面的问题,但都没有提供具体的解决scheme。 未被捕获的错误:没有指定版本和错误的版本错误 。

即使使用Facebook提供的标准embedded代码,我也遇到以下错误。

未捕获错误:在sdk.js中指定的无效版本

首先要检查的是,在FB.init调用中包含版本号:

 FB.init({ appId: 'your-app-id', xfbml: true, version: 'v2.8' }); 

现在已经过时的问题

…是做一个简单的调整,并改变了path:

 From: //connect.facebook.net/en_GB/sdk.js To: //connect.facebook.net/en_GB/all.js 

这固定了错误。 不幸的是我不知道为什么。 🙁

考虑在src属性中包含一个version参数,如下所示:

 js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8" 

Webbutton上的默认模板不完整; 点击“获取代码”button后,Facebook将生成一个包含version参数的完整模板。

小头抬头,我不得不改变

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1 &amp; version=v2.8";

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1 version=v2.8";

当我将文件从HTTP更改为HTTPS时遇到了这个问题。 原因是在下面的代码中缺less特定的“HTTP:”或“HTTPS:”:

 <div class="fb-comments" data-width="100%" data-href="//amazingjokes.com/image/2017-03-17/A_good_sign_for_St__Patricks_day" data-num-posts="5" data-colorscheme="light"> </div> 

通常“//domain.com”会复制我们正在使用的scheme,所以当您使用htts://example.com时,指向“//example2.com”的链接将被视为“ https:// example2”。 com '。 对于“fb-comments”,您需要专门声明数据href的HTTP或HTTPS。

另请注意,根据Facebook的“ https://example.com ”是另一个页面,而不是“ http://example.com ”。 所以,如果你升级你的网站的SSL,你会失去所有过去的评论,如果你将社交插件中的URL从HTTP更改为HTTPS …我select的解决scheme是对所有较旧的post使用HTTP,对最近的一切使用HTTPS