Facebook点赞按钮无法显示 :: 在调用FB.init()之前调用了FB.getLoginStatus()

7
我只想在我的网站上添加一个基本的Facebook点赞按钮。我按照Facebook网站上的说明进行操作(http://developers.facebook.com/docs/reference/plugins/like/)。我尝试了HTML5、XFBML和iFrame的方式,但都无法成功。所以我认为可能是我的网站有所干扰。因此,我创建了一个像下面这样的简单的HTML页面,但仍然显示“在调用FB.init()之前调用了FB.getLoginStatus()”的错误信息。
<html>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like" data-href="http://www.facebook.com/[mypage]" data-send="false" data-width="450" data-show-faces="false"></div>
</body>
</html>

更新:我删除了上面所有的东西,回到了只使用iFrame的方法,并且它可以工作,但仅在Firefox中。在Chrome和IE9中,我仍然什么都没有得到,但也没有报告任何错误。为什么下面这行代码只在FireFox中有效(显然[myPage]部分已被替换)?

 <iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.facebook.com%2F[myPage]&amp;send=false&amp;layout=standard&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>

在嵌入JS SDK时,您没有提供应用程序ID - 但这是强制性的,否则它将无法正确初始化。 - CBroe
抱歉,我还是不明白。我的账户已经通过验证,过去也有人点赞过我。为什么我需要一个应用程序ID呢?我不想要任何应用程序,我只想让人们喜欢我的页面。我的页面不是个人页面,而是商业页面,这有关系吗? - gfrobenius
2
你解决了吗?我也遇到了同样的问题。 - mike23
我也遇到了同样的问题。我找不到任何地方创建应用程序,只是一直在打转。在尝试实现“赞”按钮后,我也遇到了相同的错误。 - Dennis
我们在哪里添加app_id呢? - andy4thehuynh
显示剩余3条评论
3个回答

3

不确定应用程序ID是否是这里的问题。我也遇到了这个奇怪的错误消息,而且我只是包含了由FB开发人员页面提供的标准代码来实现FB Like Button社交插件。

然后我再次浏览了插件配置页面,并复制了代码,但是代码没有任何变化(在生成的代码的HTML部分中有一个<fb:like>标签,现在是<div class="fb-like">。无论如何,错误仍然存在。

然后我突然意识到,在几周内,FB Like Button将永久迁移到Open Graph的内置Like操作,如果我理解正确,您无论如何都必须创建一个应用程序ID。

此时,错误可能会自动消失。而且似乎很难有人修复即将在几周内消失的东西。

希望这可以帮上你。


1
刚刚经历了完全相同的事情。创建一个测试应用程序并使用该应用程序ID进行修复。也许Facebook已经转向“必须拥有应用程序ID”的事情了? - koosa

2

你是在本地进行测试吗?在自己经过调试和搜索之后,我决定在我的 Web 服务器上进行测试,结果就可以了!:)


1
在我们获取点赞按钮脚本的Facebook开发者页面上,Facebook并未提到需要实现init()(这可能可以解决此问题,但如果您同时调用init()函数,将使用什么作为APP ID?)。
而且,点赞按钮不需要APP ID也可以使用。我认为Facebook只是提供了Like Button代码,尽管缺少init()函数会导致此js错误(但显然实际上并不需要init()!)。
这似乎是FB Like Button API部署中的一个缺陷。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接