2

我开发了一个带有 facebook 社交插件的小网页(例如,推荐和发送按钮)。直到大约一个月前,我才能在 localhost 上成功测试按钮和点击事件;但突然这些按钮现在无法在 localhost 上运行。只有当我通过“localtunnel”将网页部署在公共 IP 上时,它们才有效。在 localhost 上,它们显示喜欢和名称的数量,但在单击按钮时不会弹出。此外,订阅的事件“edge.create”不会被触发。

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

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

4

2 回答 2

2

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

于 2013-08-14T17:03:44.910 回答
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>

在你的身体标签结束之前。

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

这段代码在本地主机上对我来说工作得很好。如果您照原样复制代码,但在 localhost 上仍然看不到点赞按钮,请检查是否有其他东西破坏了您的点赞按钮。

于 2012-04-24T20:45:15.667 回答