Facebook fb:评论图谱API

时间:2011-07-18 16:35:00

标签: facebook facebook-graph-api

我想在我的网站上发布Facebook评论+我自己的网站评论。

事情是在显示帖子时我想在每一个旁边显示评论数(所以我的评论+ facebook评论)。 我知道我可以使用https://graph.facebook.com/comments/?ids= {PAGE_URL}来实现这一点,但我每页有100个帖子,我不想每页100次这样的查询,更重要的是我想创建一个评论最多的小部件,我目前有1/4百万(250000)个帖子。

所以基本上我的问题是我如何在我的域/网站上留下的所有评论中访问数据库并对它们进行排序,这是对它们进行操作?

3 个答案:

答案 0 :(得分:3)

以下是您可以执行此操作的一些示例:

FQL:

您可以构建一个JSON查询数组,然后使用Rest API fql.multiquery方法来运行它们。例如,这将是您的JSON查询数组:

{
  'query1': "select post_fbid from comment where object_id in (select comments_fbid from link_stat where url ='http://developers.facebook.com/docs/reference/fql/comment/')", 
  'query2': "select post_fbid from comment where object_id in (select comments_fbid from link_stat where url ='http://developers.facebook.com/docs/reference/fql/album/')"
}

使用fql.multiquery page上的测试控制台运行此操作,您将能够看到包含post_fbids列表的响应,然后您可以使用您喜欢的计数方法对其进行计数。

图形API:

您可以在此处使用Batch Request一次运行所有查询。所以对于你要做的PHP示例:

curl \
  –F ‘access_token=…’ \
  -F ‘batch=[ \
        {“method”: ”GET”, “relative_url”: ”comments/?ids={PAGE_URL1}”}, \
        {“method”: ”GET”, “relative_url”: ”comments/?ids={PAGE_URL2}”}, \
        {“method”: ”GET”, “relative_url”: ”comments/?ids={PAGE_URL3}”} \
    ]’\
  https://graph.facebook.com

根据需要设置多个页面。

注意:鉴于两个API在您收到响应之前确实有一点延迟,显然建议您异步运行它们,这样就不会导致网站加载延迟显著。

答案 1 :(得分:1)

试试这个:

将网址分隔为逗号,如果您想使用图表API获取多个调用:

https://graph.facebook.com/comments/?ids=http://URL_1,http://URL_2,http://URL_n

答案 2 :(得分:0)

我认为对于您的用例,FQL最适合:https://developers.facebook.com/docs/reference/fql/comment/。 另外,如果你想使用图形API进行多次http调用,它总是很好地进行“批量调用”,如图API文档中所述。