我开发了一个带有facebook社交插件的小网页(如推荐和发送按钮)。我可以在localhost上成功测试按钮和点击事件,直到一个月前;但突然之间按钮现在无法在localhost上运行。它们仅在我通过“localtunnel”在公共IP上部署网页时才起作用。在localhost上,它们显示了喜欢和名称的数量,但是在单击按钮时不会给出弹出窗口。此外,订阅事件“edge.create”不会被触发。
我已经从facebook按钮小部件页面复制了所有必需的javascript。 我还发现localhost和隧道部署的流量模式存在一些差异。 GET oauth请求在localhost上返回302状态,在公共域上返回200。此外,在单击按钮以获取某些CSS和图像后,公共域上的部署会产生许多GET请求。而localhost页面只发出一个请求并停在那里。 我无法理解为什么会这样。
facebook最近是否已停止支持测试localhost上的按钮所需的任何内容?
答案 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上看到类似按钮,那么请检查是否有其他内容违反了您的喜欢按钮。