2013-03-20 85 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;  
}