2013-03-20 92 views
0

我需要记录到数据库,如果用户喜欢使用顶部的官方Facebook'喜欢'按钮的iframe页面选项卡。我做了搜索在这里计算器,发现一段JavaScript代码...Facebook的PHP SDK捕获喜欢事件

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

但它不火的正式按钮(只喜欢按钮添加到页面)?我在FB.init之后和FB.Canvas在异步调用中调整大小之前声明它。有没有在PHP的方式来捕捉这个 - 可能刷新?无论是JS或PHP是好的(因为JS可以简单地ajax一个PHP文件)。已签名的请求包含他们是否喜欢该页面,但我需要在发生时(或刚刚发生)捕获它。 任何帮助不胜感激:-)

回答

0

尝试:

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

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

+0

由于科林,试过了 - 在,但仍然没有 - 等待24小时分析报告。我在Google和网上所做的所有阅读都表明,这只适用于iframe页面上的Like按钮,而不是页面选项卡上方的官方按钮。 – Andy 2013-03-20 18:34:40

0

它到底是纯粹的PHP方式吗?

1:从Facebook上签名的请求,并提取喜欢统计

2:创建一个变量$喜欢并设置或根据“是”,“否”上签名的请求值

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;  
}