Facebook PHP SDK捕获事件

时间:2013-03-20 01:10:20

标签: facebook facebook-like

如果用户喜欢使用顶部官方Facebook“喜欢”按钮的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文件)。签名的请求包含他们是否喜欢该页面,但我需要捕获它,因为它发生(或刚刚发生)。 任何帮助非常感谢: - )

2 个答案:

答案 0 :(得分:0)

尝试:

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

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

答案 1 :(得分:0)

最终它是纯粹的PHP方式吗?

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

2:根据签名请求值创建变量$ likes并设置为“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;    
}