确定Facebook用户是否喜欢特定的帖子 - Javascript

时间:2011-01-27 02:44:03

标签: javascript facebook facebook-like

我正在使用javascript sdk开发一个facebook应用程序,它可以检索特定的墙贴,并允许用户喜欢或不喜欢它们。要完成此功能,我需要知道用户是否喜欢每个帖子开头。确定这个的最佳方法是什么?我考虑检索特定帖子的所有喜欢,迭代id并根据用户的id测试每个,但这似乎不是一个有效的解决方案。有更好的想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

只要您知道user_idpost_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

答案 1 :(得分:0)

有可能,您可以在json数组中获取它。 然后检查您的用户是否喜欢它。 我不认为有其他方式,但让等待有经验的用户回答这个问题;) http://developers.facebook.com/docs/reference/api/post/

Here

答案 2 :(得分:0)

考虑使用FQL来解决这个问题。您可以使用likedocs)表来检索喜欢帖子的用户列表。拥有此列表,您可以检查您的用户是否为IN列表。

您只需检索一次此列表,然后检查您的ID(或ids)。

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
}
祝你好运!