Facebook edge.create事件没有像盒子一样触发

时间:2011-09-12 15:40:07

标签: facebook facebook-like facebook-likebox

我有一个带有简单Facebook按钮的页面,我需要知道用户何时喜欢该页面,所以我使用edge.create事件来完成这一切都很好。我现在需要在页面中添加一个类似Box的插件,以便像客户端的Facebook页面一样,当有人点击“喜欢”按钮时,我需要再次收到通知。但是,订阅事件永远不会触发。知道可能是什么问题吗?我正在使用xfbml代码添加类似的框。

2 个答案:

答案 0 :(得分:5)

这似乎是一个错误。这是官方可靠来源的链接:

http://developers.facebook.com/bugs/310763168934515

我的jsFiddle在这里演示:http://jsfiddle.net/dmcs/3D2GD/1/

修改

我找到了解决方案!

首先,我将我的代码放在我自己的域而不是jsFiddle上以进行更好的测试,但是我的第一次尝试失败,好像代码仍然在jsFiddle上。所以我进一步麻烦了。

然后,对于我指定的应用设置,我进去并在WebSite上指定了https://developers.facebook.com/apps/{APP_ID}/summary网址

这是我的代码

<html>
<head>
    <title>Like Box example</title>
</head>

<body>

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
    FB.init({
        appId: '{APP_ID}'
    });
    FB.Event.subscribe('edge.create', function(response) {
        alert('You liked the URL: ' + response);
    });
};

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id; //js.async = true;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId={APP_ID}";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));


</script>

<div class="fb-like-box" data-href="http://www.facebook.com/Cocacola" data-width="292" data-show-faces="true" data-stream="true" data-header="true"></div>

</body>
</html>

答案 1 :(得分:1)

只需要替换代码:

<div class="fb-like-box" data-href="http://www.facebook.com/jsfiddle" 
data-width="292" data-show-faces="true" data-stream="false" data-header="true">

这一个:

<fb:like-box href="http://www.facebook.com/jsfiddle" 
colorscheme="light" show_faces="false" header="false" stream="false" 
show_border="false"></fb:like-box>

它运作正常。