2011-03-17 41 views
4

我的網站上有一個facebook likebox(不是iframe應用程序),我需要創建門控內容。我瞭解使用edge.create和edge.remove的FB.Event.subscribe,但我真正需要的是知道用戶是否已經喜歡該頁面,而不僅僅是如果他們成爲粉絲或者不再是粉絲。是否有任何我可以從xfbml.render中看到的回調?Fan-Gate,Like-Gate,show-to-connections,使用javascript和like box?

我受限於(由我的公司)使用前端語言,這意味着在這一點上JavaScript實際上是我唯一的選擇。我很樂意使用「signed_request」選項,但我最好說的是似乎只能通過服務器端語言訪問。

有什麼方法可以讓我確定某人是否已經「喜歡」僅使用JavaScript的頁面?

回答

6

是的,您可以使用FB Javascript sdk完全在javascript中完成此操作。

function RunLikeCheck() { 
var likeId = 'yourLikeIdHere'; 
    FB.api({ 
     method: 'fql.query', 
     query: 'SELECT uid FROM page_fan WHERE page_id = ' + likeId + ' AND uid = me()' 
    }, 
       function (response) { 

        if (response.length == 1) { 
         $("#HasLiked").val('true'); 
         $('#frmAllow').submit(); 
        } 
        else { 
         $("#HasLiked").val('false'); 
         $('#frmAllow').submit(); 
        } 
       } 
      ); 
} 

現在假設您已經有用戶登錄並且擁有正確的權限。

+0

這是我發現這裏原本就不通過您的應用程序登錄的唯一答案。謝謝! 在頁面選項卡上使用它,它工作得很好。請注意,將它用於選項卡時,請使用頁面標識,而不是應用程序標識。 – Nate914375 2014-02-21 00:11:18

0

下面是一些額外的javascript代碼實現類似的門,不需要FB.api調用(但確實需要用戶重新喜歡每次他們訪問頁面)。

http://linksy.me/viral-gate