fswd
fswd

Reputation: 353

Facebook fb:comments Graph API

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?

Upvotes: 0

Views: 4887

Answers (3)

Julio César
Julio César

Reputation: 11

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

Upvotes: 1

Matthew Johnston
Matthew Johnston

Reputation: 4439

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.

Upvotes: 3

crozzfire
crozzfire

Reputation: 196

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.

Upvotes: 0

Related Questions