2012-06-25 136 views

回答

0

下面是commentsposts的Graph 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 

     } 
    } 
); 

尽管在服务器端取得评论可能更有意义 - 取决于您的使用案例更有意义。

+0

请注意,我不知道任何文章ID,只是我的网页的URL –

+0

@ToniMichelCaubet - 你能详细谈谈那一点?就像在网页或Facebook页面那样的“页面”? – egasimus

+0

是我的网站上有内容的一个网页。例如,这个页面(如你所见,有自己的评论系统,我想追加评论完成vía脸书)http://funcook.com/receta.php?id=53 –

2

是的,你可以。最简单的方法是拨打FQL致电Facebook。你应该也能够用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> 
+0

哇!听起来不错!将测试这个,让你知道,谢谢你的写作 –

+0

你可以让api电话?我不知道如何输入查询 –

+0

在电话中编辑了我原来的回答。 Multiqueries具有与我预期不同的语法。 – cpilko