Facebook API: Get comments from facebook posts - facebook

I am trying to retrieve all comments on a shared LINK.
I have tried FQL on comment table, but that doesn't work since comment table is for comments plugin.
Let me give you an example:
- CNN has shared a link on their page, which has 60 likes and 30 comments.
- I have tried this FQL query, but it returns nothing since it is not from Comments plugin:
FQL: SELECT post_fbid, fromid, object_id, text, time FROM comment
WHERE object_id IN (SELECT comments_fbid FROM link_stat WHERE url =
'http://google.com/')
So any solution on this?

Related

Facebook comment FQL and comment box

I'm syncing Facebook comments to a database and showing the Facebook comment box on a webpage. There are some inconsistencies with what is synced and what is shown in the Facebook comments box.
First I'm getting the comments with an FQL query. The FQL is as follows:
SELECT post_fbid, fromid, object_id, text, time FROM comment WHERE object_id in
(SELECT comments_fbid FROM link_stat WHERE url = 'http://www.storaensometsa.fi/metsa-ja-mina/')
If you run the query in Facebook Graph API Explorer it returns two comments.
Now, if I add a Facebook comment box to the page above (http://www.storaensometsa.fi/metsa-ja-mina/) it shows zero comments (scroll down the page to see the comment box).
Any thoughts why this is happening? Shouldn't there be two comments in the comment box also? Is the FQL query somehow incorrect?
Why really is FQL necessary? You have to write such a complex query to get the comments, where you can easily get them using the Graph API /comments. Here's the API call:
/comments?id={url}
So to get the comments from your url, simply \GET:
http://graph.facebook.com/comments?id=http://www.storaensometsa.fi/metsa-ja-mina/
(you can check the result in the browser)

Facebook fql can't get comments by post_id from comment table

Can anyone tell me why I can't get comments from comment table by post_id.
Access token is [redacted]
post_id is 100002553491860_419288394832940
The post has one comment, I can get it from stream table by fql: select comments from stream where post_id = '100002553491860_419288394832940', you can run it in graph api explorer: http://developers.facebook.com/tools/explorer.
Then I tried to get comments of this post from comment table, fql: select text,time,fromid,comment_count,likes,can_like,user_likes,id from comment where post_id='100002553491860_419288394832940', but it returns empty.
Any help is appreciated.
OK for someone may run into the same problem, finally I used stream table to get comments instead of comment table, fql: select comments from stream where post_id='%#'.

Get realtime page notifications facebook

I need to get page notifications(new comments, new likes, new post likes etc.). Is there any solution that I can make it realtime?
Realtime api doesn't support it.
FQL doesn't support it.
Realtime API does not support it, however FQL does support it. Given a URL, you can always get comments and likes using comment and link_stat tables.
http://developers.facebook.com/docs/reference/fql/comment/
SELECT post_fbid, fromid, object_id, text, time
FROM comment
WHERE object_id IN (
SELECT comments_fbid
FROM link_stat
WHERE url ='http://developers.facebook.com/docs/reference/fql/comment/')
link_stat table has comment_count, like_count etc as well. You have poll for this content, as you will not get realtime notifications.

Post new comment to facebook comments using fql

I have successfully retrieved the comments on a specific link using the fql with the following code:
{\"comments\":\"SELECT fromid, text, time, comments FROM comment WHERE object_id IN (SELECT comments_fbid FROM link_stat WHERE url ='http://permalink')\", \"users\":\"SELECT name, id FROM profile WHERE id IN (SELECT fromid FROM #comments)\"}
I want to post new comment and I have the access token of the user, what is the right way to do this using fql?
As far as I'm aware,you can't insert using FQL. FQL is merely a query language used to perform more complex queries than the Graph API endpoints offer allowing you to perform joins etc (Not joins in the traditional sense but using "IN" statements).
You would need to use the graph api and issue a POST request as detailed towards the bottom of this page https://developers.facebook.com/docs/reference/api/link/

Facebook FQL query to return all comments against an application [duplicate]

We use the facebook comment plugin to have comments on our site.
To moderate those, we use this tool: https://developers.facebook.com/tools/comments
However, we want to build our own tool to moderate those comments, and integrate it to our existing software.
I can't find a proper way of doing this. the only way I found out now after hours of research is this FQL query:
select post_fbid, fromid, object_id, text, time from comment where object_id in (select comments_fbid from link_stat where url ='URL_HERE')
That doesn't work because we have thousands of different URL's and I cant query each of them every time to see if there are any new comments.
I need a way to get all (new) comments by just enter our app_id, domain or something like that
How can I do this?
I'm considering doing the same thing- grabbing all user posts for my application. I'm assuming it's a similar task.
For given user, I will scroll through feed and home looking for app posts. For you, you'd go:
`home?fields=comments`
`feed?fields=comments`
And check for "type" and "id" to match your application.
This code queries for all comments xids used by your application:
https://graph.facebook.com/fql?q=SELECT fromid, text, id, time, username, xid, object_id FROM comment WHERE xid IN (SELECT xid FROM comments_info WHERE app_id = {0}) ORDER BY time desc&access_token={1}&format=json