从Facebook喜欢的评论?

时间:2012-06-25 21:35:56

标签: javascript facebook facebook-javascript-sdk

我有一个Facebook应用程序,它有自己的消息系统,但我仍然希望显示用户在Facebook上发表的用户分享或喜欢的评论。

假设在Facebook中共享了一个网址(例如http://myapp.com/?myId=100005235),人们会在共享中添加评论。这些评论(和用户名)是我想要检索的。

我可以使用facebook-js-sdk吗?

2 个答案:

答案 0 :(得分:2)

是的,你可以。最简单的方法是对Facebook进行FQL调用。您 也可以使用Graph API调用来执行此操作,但在我的测试中,我无法找到返回所需数据的方法。

在FQL中,您需要查询三个不同的表:link_stat以获取您的网址的Facebook ID,comments获取评论信息,user获取名称已发表评论的注册用户。

随后展开了多个查询,以便于阅读。

{
  "my_link":
     "SELECT comments_fbid, comment_count, normalized_url FROM link_stat WHERE 
        url ='http://funcook.com/receta.php?id=53' ",
   "comment":
     "SELECT object_id, fromid, time, text, username FROM comment WHERE 
        object_id IN (SELECT comments_fbid FROM #my_link)",
   "com_users":
      "SELECT name, uid FROM user WHERE uid IN (SELECT fromid FROM #comment)"
 }

你会得到一个JSON对象。我的网站上有一些测试网址,我发现my_link.comment_count并不总是等于count(comment)。我发现其中一个显示为零而另一个没有显示的情况。

这是一个脚本:

<script>
  FB.api(
    '/fql', {q:{"my_link":"SELECT comments_fbid, comment_count, normalized_url FROM link_stat WHERE url='http://funcook.com/receta.php?id=53'",
        "comment":"SELECT object_id, fromid, time, text, username FROM comment WHERE object_id IN (SELECT comments_fbid FROM #my_link)",  
        "com_users": "SELECT name, uid FROM user WHERE uid IN (SELECT fromid FROM #comment)" }},
  function(response){
   console.log(response)
  });
</script>

答案 1 :(得分:0)

以下是commentsposts的图表API参考。后者说每个帖子都有comments个对象。

我之前从未使用过Graph API,而且我不擅长编写代码,所以我无法为您提供实际代码,但可能还有以下几点:

FB.api(
    '/19292868552_10150189643478553', // fetch a post by its id
    function(response) {              // callback function
        for (var comment in response["comments"]["data"]) {

            // process comment

        }
    }
);

虽然在服务器端获取注释可能更有意义 - 取决于在用例中更有意义的内容。