Facebook fb:comments Graph API

假装没事ソ 提交于 2020-01-11 14:01:09

问题


i want to have facebook comments + my own website comments on my site.

The thing is when showing posts i want to show a comment count next to every single one(so my comments + facebook comments). I know i can achieve this with https://graph.facebook.com/comments/?ids={PAGE_URL} but i have 100posts per page and i don't want to do this query a 100 times per page, also and more important is that i want to create a most commented widget where i currently have 1/4 of a million (250000) posts.

So basically my question is how i can access sort of a database on all comments left on my domain/site and sort them, that is manipulate them?


回答1:


Here are some examples of ways you could do this:

FQL:

You can build your a JSON array of queries and then use the Rest API fql.multiquery method to run them. For example, this would be your JSON array of queries:

{
  '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/')"
}

Run this using the test console on the fql.multiquery page and you'll be able to see a response containing a list of post_fbids which you could then count using your favored counting method.

Graph API:

Here you can use a Batch Request to run all of your queries at once. So for a PHP Example you'd be doing:

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

For as many pages as you want.

Note: Given that both APIs do have a bit of a delay before you'll get a response, obviously it's recommended to run them asynchronously so that you aren't causing your site load to delay significantly.




回答2:


Try this:

Place the URL separated by commas, If you wanna fetch multiple calls using the graph API :

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



回答3:


I think for your use case FQL will suit the best : https://developers.facebook.com/docs/reference/fql/comment/ . On the side note, if you wanna do multiple http calls using the graph API , its always good to do "Batch calls" as documented in the graph API documentation.



来源:https://stackoverflow.com/questions/6736210/facebook-fbcomments-graph-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!