0

如果用户使用顶部的官方 Facebook 'like' 按钮喜欢 iframe 页面选项卡,我需要记录到数据库中。我在stackoverflow上进行了搜索,发现了一个javascript片段......

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

但它不会为官方按钮触发(仅像添加到页面的按钮)?我在 FB.init 之后和 FB.Canvas 在异步调用中调整大小之前声明它。PHP中有没有办法捕捉到这一点 - 刷新时可能吗?JS 或 PHP 都可以(因为 JS 可以简单地 ajax 一个 php 文件)。签名的请求包含他们是否喜欢该页面,但我需要在它发生(或刚刚发生)时捕获它。非常感谢任何帮助:-)

4

2 回答 2

0

最后用纯粹的PHP方式做了。

1:从 facebook 获取签名请求并提取喜欢的统计信息

2:创建一个变量 $liked 并根据签名请求值设置为“yes”或“no”

3:操纵会话 - 使用会话,因为当您“喜欢”时页面会刷新但会话仍然存在(但请求值会发生变化)

if(isset($_SESSION['likestatus'])){
    if($_SESSION['likestatus'] == "no" && $liked == "yes"){
        // do mysql updatestuff cause has liked page since session started  
        $_SESSION['likestatus'] = $liked;
    }
    else{
        $_SESSION['likestatus'] = $liked;
    }    
}
else {
    $_SESSION['likestatus'] = $liked;    
}
于 2013-03-20T20:42:21.117 回答
0

尝试 :

window.fbAsyncInit = function () { FB.Event.subscribe('edge.create', function (targetUrl) { _gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]); }); };

我认为您只需要在 fbAsyncInit 中设置下标。

于 2013-03-20T02:02:30.930 回答