【问题标题】:AJAX listener for Facebook Like ButtonFacebook Like Button 的 AJAX 监听器
【发布时间】:2012-07-24 14:37:14
【问题描述】:

我的页面上有几个点赞按钮,我想在有人“喜欢”或“不喜欢”时触发 PHP 脚本(通过 AJAX)。

我看到当有人“点赞”时,会触发 POST 和 GET。当有人说“不喜欢”时,就会触发一个帖子。这可能是区分这两种行为的一种方式。

如何拦截这些触发的动作?

有没有办法获取帖子的参数?

【问题讨论】:

  • “喜欢”或“不喜欢”的 POST 响应不同。如果我能读懂它就会成功。

标签: php javascript ajax facebook facebook-like


【解决方案1】:

查看 Facebook Javascript SDK 中的 FB.Event APIsubscribe 函数应该可以让你做你想做的事。

从文档中,这是您的用例的示例:

// new like
FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
    }
);

// removed like
FB.Event.subscribe('edge.remove',
    function(response) {
        alert('You unliked the URL: ' + response);
    }
);

【讨论】:

  • 请注意,要使其工作,您必须使用 XFMBL Like 按钮,而不是 iframe/HTML5 版本。
  • @ceejayoz 你能验证一下 HTML5 吗? iframe 版本肯定不行,但我猜 HTML5 按钮可以成功拾取。
  • 有时会出现警报,有时不会。有缓存问题要解决吗?
  • @HappyLearner 不,我猜您的事件订阅在页面呈现之前触发,给您一个竞争条件。在 FB.init 之后和 $(document).ready() 块内抛出事件订阅。
  • 我正在这样做:$(document).ready(function() { FB.api('/me', function(response) { alert('Your name is ' + response.name) ; }); // new like FB.Event.subscribe('edge.create', function(response) { alert('You like the URL: ' + response); } ); // 删除 like FB.Event.subscribe ('edge.remove', function(response) { alert('You liked the URL: ' + response); } ); });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 2011-12-19
相关资源
最近更新 更多