2011-06-20 66 views
3

我需要知道我的網頁的訪問者是否點擊了「喜歡」按鈕。 使用此代碼:知道是否點擊了Facebook喜歡按鈕

<fb:like href="[my_url]" layout="button_count" show_faces="false" width="20" font=""></fb:like> 

幷包括從Facebook的腳本。 我知道我可以用這個:

FB.Event.subscribe('edge.create', function(response) { 
    //if the user click on Like 
} 

但是如果用戶alredy就喜歡我的地盤,我怎麼能知道? 我不想讓他不再像以前一樣,去執行那個事件。

回答

3

它實際上是可能的:

FB.login(function(response) { 
    if (response.status == 'connected') { 
    FB.api('me/likes/' +fb_page_id_or_fb_user_id, function(likes) { 
     if (likes.data.length > 0) { 
     alert('yaay, page liked'); 
     } 
    }); 
    } else { 
    alert('unable to connect to fb'); 
    } 
}, {scope: 'user_likes'}); 
1

把類似按鈕的另一個元素中,並加入到它的onclick

<div onclick="doSomething();"> 
    <fb:like href="[my_url]" layout="button_count" show_faces="false" width="20" font=""> </fb:like> 
</div> 
+0

不是一個好主意。你測試過了嗎? – mplungjan

+2

將事件綁定到類似按鈕的_click_沒問題,只需使用FB.Event.subscribe(「edge.create」,function(){});問題是要知道按鈕是否被點擊。 –

6

http://unbound-media.com/facebook/how-to-tell-if-a-facebook-user-likes-your-facebook-application/

FB.Event.subscribe('auth.sessionChange', function(response) { 
     if(response.session){ 
      //check to see if user is a fan of the page 
      var query = FB.Data.query('select page_id from page_fan where uid='+response.session.uid+' and page_id ='+PAGE_ID); 
      query.wait(function(rows) { 
       if(rows.length){ 
        //user already likes your page 
       }else{ 
        //user has not yet liked your page 
       } 
      }); 
     }else{ 
      //user has not yet logged in 
     } 
    }); 

UPDATE:

我個人使用

<iframe src="http://www.facebook.com/plugins/like.php?app_id=...&amp;send=false&amp;layout=button_count&amp;width=50&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px; height:21px;" allowTransparency="true"></iframe> 

,我從這裏:http://developers.facebook.com/docs/guides/web/

它不能再從它的頁面點擊

+1

這不需要它們已經通過了應用程序的驗證嗎? – bkaid

+0

看起來像網頁也可以做到這一點 – mplungjan

+0

看起來不像這個事件運行。我沒有應用程序,只是一個普通的網頁和類似按鈕。 –

-2

正好有一個公認的ansver這裏。

我不認爲這是可能的,我最終放棄了。

我認爲Facebook不希望人們知道點擊按鈕是否被點擊,因爲Facebook不希望任何人強​​迫人們喜歡任何東西。

如果有人得到了更好的答案,告訴我,但現在,我認爲正確的答案是,不,這是不可能的。

+0

不,實際上可以,請在下面查看我的答案。 – Yassin

+0

當FB.Event.subscribe('edge.create',函數(響應){//如果用戶點擊Like }},您可以使用cookie, – pavitran