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

时间:2014-12-23 13:16:47

标签: javascript facebook requirejs facebook-javascript-sdk

我想为我正在使用的网络应用程序使用facebook共享插件,我只需要基本的共享按钮。该应用程序使用requirejs加载javascript,因此我按照how-to并将facebook api url更改为facebook docs上的代码段中找到的URL。这不起作用,并且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']);

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共享插件包含在requirejs中的最佳方法是什么?

我提到了以下问题,但没有一个提供具体的解决方案。 Uncaught error: no version specifiedwrong version error

6 个答案:

答案 0 :(得分:94)

即使使用Facebook提供的标准嵌入代码,我也会收到以下错误

  

未捕获错误:sdk.js

中指定的版本无效

要检查的第一件事是您在FB.init电话中包含版本号:

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

现在过时的修复......

...是做一个简单的调整并改变了路径:

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

这解决了错误。不幸的是我不明白为什么。 : - (

答案 1 :(得分:56)

考虑在version属性中加入src参数,如下所示:

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

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

答案 2 :(得分:6)

小小的抬头,我不得不改变

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";

答案 3 :(得分:1)

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

Unable to find version '4.8.0.770-beta' of package 'Lucene.Net'.

通常'//domain.com'会复制我们正在使用的方案,因此当您使用htts://example.com时,指向'//example2.com'的链接将被视为'{{3 }}”。对于'fb-comments',您需要专门为data-href声明HTTP或HTTPS。

另请注意,根据facebook的“https://example2.com”是另一页而不是“https://example.com”。因此,如果您将网站升级为SSL,如果您将社交插件中的URL从HTTP更改为HTTPS,您将丢失所有过去的评论...我选择的解决方案是对所有旧帖子使用HTTP,并为最近的所有内容使用HTTPS

答案 4 :(得分:0)

Facebook Share Button Configurator上的源代码中有(或曾经)错误!页。如果您在页面上使用Share Configurator,它应该可以正常工作。但是,页面上有一个代码示例,上面写着&#39; Copy&amp;将代码示例粘贴到您的网站...&#39;,这是错误的代码,将导致该页面上的按钮不可见。 javascript控制台将显示错误:指定的版本无效&#39;。

我在2018年6月就此问题向Facebook开了一张票。他们承认代码存在问题,并承诺修复代码示例,但截至2018年6月17日,网站上仍然存在错误代码。

希望这会有所帮助。

答案 5 :(得分:0)

我将原始的sdk.js更改为解决了我的问题的all.js:

<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/fr_FR/all.js"></script>

为我仔细更改您的语言,这是法语“ fr_FR”

我从这里获取了原始脚本:https://developers.facebook.com/docs/plugins/page-plugin/