无法在localhost上测试facebook之类的按钮(与之前不同)

时间:2012-04-24 06:34:23

标签: facebook facebook-like localhost

我开发了一个带有facebook社交插件的小网页(如推荐和发送按钮)。我可以在localhost上成功测试按钮和点击事件,直到一个月前;但突然之间按钮现在无法在localhost上运行。它们仅在我通过“localtunnel”在公共IP上部署网页时才起作用。在localhost上,它们显示了喜欢和名称的数量,但是在单击按钮时不会给出弹出窗口。此外,订阅事件“edge.create”不会被触发。

我已经从facebook按钮小部件页面复制了所有必需的javascript。 我还发现localhost和隧道部署的流量模式存在一些差异。 GET oauth请求在localhost上返回302状态,在公共域上返回200。此外,在单击按钮以获取某些CSS和图像后,公共域上的部署会产生许多GET请求。而localhost页面只发出一个请求并停在那里。 我无法理解为什么会这样。

facebook最近是否已停止支持测试localhost上的按钮所需的任何内容?

2 个答案:

答案 0 :(得分:2)

补充@ C-Dan的答案,确保data-href属性指向实际站点,而不是本地主机。这对我有用。

答案 1 :(得分:1)

我也可以在localhost上看到喜欢和喜欢(我的网站上的按钮和计数)

确保你有

<html xmlns:fb="http://ogp.me/ns/fb#">
html标签中的

和实际喜欢的div在你身体的任何地方 -

<div class="fb-like" data-font="verdana" data-href="http://facebook.com/CDanArt" data-layout="button_count" data-send="true" data-show-faces="false" data-width="120" style="margin: 0px 0px 0px 0px;"></div>

<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&appId=146351542070012";
  fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
</script>
在你的身体标签结束之前

当然,在脚本函数的div和appID中使用data-href。

这个代码在localhost上对我来说非常好。 如果您按原样复制代码但仍然无法在localhost上看到类似按钮,那么请检查是否有其他内容违反了您的喜欢按钮。