2011-01-27 5 views
0

私は特定のウォールポストを取得し、ユーザーが好きで好き嫌いをすることができるjavascript sdkを使ってFacebookアプリケーションを開発しています。この機能を完成させるには、ユーザーが各投稿を好きであるかどうかを知る必要があります。これを決める最も良い方法は何でしょうか?私は、特定の投稿のすべての好きなものを取得し、そのIDを反復し、それぞれをユーザーのIDと照合することを考えましたが、それは効率的なソリューションのようには見えません。どんな良いアイデアですか?前もって感謝します。Facebookのユーザーが特定のポストを好むかどうかを判断する - JavaScriptの

答えて

0

可能であれば、json配列のフォームで取得できます。 あなたのユーザーが好きかどうかを確認してください。私はtheresの他の方法を考えるが、これに答えるために、経験豊富なユーザを待つことができません ;)

Here

0

http://developers.facebook.com/docs/reference/api/post/は、この問題のためにFQLの使用を検討してください。 likedocs)表を使用して、投稿が好きなユーザーのリストを取得できます。このリストを持つことで、ユーザがINであるかどうかをチェックすることができます。

このリストを1回だけ取得し、ID(またはID)を確認します。 JavaScriptで

例:

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
FB.api({ 
     method: 'fql.query', 
     query: 'SELECT user_id FROM like WHERE object_id=193397964020317' 
    }, 
    function(response) { 
     var results = []; 
     for (var i = 0; i < response.length; i++) { 
      results.push(response[i].user_id); 
     } 

     if (results.indexOf("725047048") != -1) { 
      // exists 
     } else { 
      // doesnt exists 
     } 
    } 
); 
</script> 

私はあなたにPHPの例を与えることは、あまりにも、おそらく誰かがそれを必要とする:

$results = json_decode(file_get_contents("https://api.facebook.com/method/fql.query?query=".urlencode("SELECT user_id FROM like WHERE object_id='193397964020317'")."&format=json")); 
if ($results) { 
    $user_ids = array(); 
    foreach ($results as $result) { 
     $user_ids[] = $result->user_id; 
    } 
} 
var_dump($user_ids); 
if (in_array(CURRENT_USER_ID, $user_ids)) { 
    // exists 
} else { 
    // does not exists 
} 

幸運を!

1

限り、あなたはuser_idを知っているとpost_idとして、それは簡単な作業です:使用

FB.api({ 
    method: 'fql.query', 
    query: 'SELECT object_id FROM like WHERE post_id="post_id" AND user_id=me()' 
    }, 
    function(response) { 
    if(response.length) { 
     // the user likes the post! 
    } 
    } 
); 

表:like

関連する問題