get facebook post containing a key word - facebook

How can I get all post on Facebook up to some date that contain a specific keyword, just like for twitter https://dev.twitter.com/docs/api/1/get/search.
Facebook keyword insight API https://developers.facebook.com/docs/keyword_insights/ allows to do analysis of the keyword on posts for last 12 days but it does not return the actual post that contain the keyword. How can I get post or comments?

You need to use the Facebook search API.
It should be noted though that this method will only return publicly posted status/post. You can't search private status (for obvious privacy reasons).

Related

FACEBOOK GRAPH API - Find all comments a user has made

I see the API has fields for getting comments given a post/photo/page id. Is there a field to grab a all comments made by a user?
something like this /me?fields=comments?
No, comments are always bound to another resource (post, photo, ...). There is no API to get ALL comments made by the user.

Getting Facebook comments "From" field using Graph API [duplicate]

Recently, when using the /feed Facebook Graph API method, it has stopped returning the From field. This field typically contains the Id and Name of the author of the Facebook Post in question.
The URL I'm hitting is https://graph.facebook.com/{id}/feed?fields={my-fields-here}&access_token={token}
From what I can tell, the From field still exists within the API: If I try https://graph.facebook.com/{id}/feed?fields=id,from&access_token={token} I get a list of IDs (no Froms though), without errors.
However, if I try a deliberately-invalid field name, such as https://graph.facebook.com/{id}/feed?fields=id,doesnotexist&access_token={token} then I get an error response of (#100) Unknown fields: doesnotexist.
So the From field still exists as far as the Facebook Graph API is concerned. It's just no longer being returned. Did something change recently? The From field is also still listed as the list of fields over on their documentation. As far as the data itself goes, posts dating months back also no longer have From, so it's not a case of "newer posts in the feed lack the field, but older posts do either."
I'm at a loss! If anyone could lend a hand, I'd appreciate it.
It is only included if you use a Page Token. v2.11 of the Graph API (90-Day Breaking Changes):
/page/* — User information will not be included in GET responses for
any objects owned by (on) a Page unless the request is made with a
Page access token. This affects all nodes and edges that return data
for objects owned by a Page.
Source: https://developers.facebook.com/docs/graph-api/changelog/version2.11
...or in the link of your question:
Any valid access token can read posts on a public Page, but responses
will not include User information.
A Page access token can read all Posts posted to or posted by that Page, and responses will include User information.

Graph API SEARCH not returning public posts done on a page

I'm trying to get posts with a certain keyword (in fact, a hashtag), but I'm not receiving all posts. For example, there are a lot of posts done by users on a certain page that are not being pulled although they're public. The call I do is similar to this one:
https://graph.facebook.com/search?type=post&q=keyword&access_token=XXXXX
Not sure if this type of posts are considered public but only retrievable by specifying the page:
https://graph.facebook.com/PAGE_ID/feed?access_token=XXXXX
But I need to retrieve all public posts containing a certain keyword and I don't know exactly which pages could users post to with this hashtag...
Be aware that Facebook has just taken down public post search in Graph API v2.0 so you won't be available to do that anymore.
Check https://developers.facebook.com/docs/apps/upgrading under section Graph API "Public post search is no longer available. (/search?type=post&q=foobar)"

Facebook Search API, keyword search does not display posts made in a page but only in a profile

I am using the facebook search API to find posts that include my keyword. I noticed that the posts returned always belong to facebook profiles but never facebook pages. To back that up, I searched for keywords of low frequency which I spotted in pages but the API did not return them.
Is there any way I can search by keyword and get posts from pages too ?
Taking a look at the documentation: Just search with &type=post. From that documentation:
All public posts: https://graph.facebook.com/search?q=watermelon&type=post

Facebook - check who shares a link

When I type name of e.g. youtube clip in facebook search I can get number of people that share this link.
Is it posibble to fetch list of people sharing given like using facebook api?
No, you can't get who shared, only the total number. The easiest way to see the count is, for instance:
http://graph.facebook.com/http://stackoverflow.com
This solved my problem !
http://graph.facebook.com/http://stackoverflow.com
Creating Facebook apps was very easy, but now, you need to apply and ask for approval the app ... that sucks ...
You can do this with Facebook's FQL (Facebook Query Language), it gives you more information than the previously mentioned Graph API method, but Facebook are apparently going to turn off the FQL API on August 7, 2016. So its not going to be useful in the long term.
https://api.facebook.com/method/fql.query?query=select+comment_count%2C+like_count%2C+total_count%2C+share_count%2C+click_count+from+link_stat+where+url%3D%27stackoverflow.com%27
The interesting thing about this is it shows the result given by the previously mentioned Facebook Graph API request, i.e:
http://graph.facebook.com/http://stackoverflow.com
is actually giving the "total count", which is actually the sum of the likes, comments and shares of that link, the FQL method gives you the actual individual counts for comments, shares and likes.
Another method for getting the actual share count, is to use the links.getStats API call, but it appears to be undocumented, and nobody seems to know how long it will be available for.
Here's how to use it:
https://api.facebook.com/method/links.getStats?urls=stackoverflow.com&format=json