Graph API vs own app home feed - facebook

I'm trying to fetch the endpoint /me/home from the Facebook graph API v2.1.
Using the Graph API Explorer tool, I get good results that look like what the facebook mobile app displays. But when I switch to my app and simulate the exact same call with the exact same permissions, the results are different and include a lot of non relevant posts (such as "ARandomFriend liked a link").
The only difference beetween the two calls is the access token (same scope, same permissions, same user). My guess is that facebook voluntarily returns a less relevant feed to third party apps so that people can't build apps that can compete with them.
But maybe I'm wrong, does anyone know something about this ?

This is similar to
Some posts not visible on the feed through Graph API /me/home
and
Facebook SDK for .NET and Graph API Explorer news feed mismatch
The reason is Facebook "scores" nodes to derive the most "Top Story". Low scoring nodes are by default not visible. You can force all nodes with
/me/home.filter(owner)<some_filters like fields requests>
There is no documentation on WHY this actually works, but it does. You can also force all nodes that are Likes or Comments by doing the following
me/posts?fields=likes.filter(stream),comments.filter(stream)

Related

Is Facebook Graph API the right tool for comment moderation?

I have a Facebook page that is attracting a lot of comments, and I need to stay on top of them, and Facebook notifications is not keeping up.
I am thinking of writing a small simple piece of software (Winforms/C# probably) that I can use to scan for new comments that I haven't responded to. I have created a Facebook app, and used it's credentials to run successful queries in Graph API explorer (except for not getting the "from" field from anyone that is "not me"), But it says I have to do an App Review, and for that my app has to be publicly accessible, but my tool is going to be strictly private.
Perhaps Graph API is not what I should be using for my purpose? What should I use otherwise?

Facebook graph api search displaying users in Facebook but not in graph [duplicate]

I'm using Facebook graph Api to search users and data that i get is kinda different from that i get from Facebook UI. For example search response of User interface is friends, mutual friends and other related data in first. How can i query to get related data for current user ( i.e friends and mutual friends in first place).
Here is query that i'm using to search users.
https://graph.facebook.com/v2.5/search?fields=id,name,picture.type(normal)&limit=50&q={q}&type=user&access_token={token}
and data that i get is kinda different from that i get from Facebook UI
That’s because those are two completely different things.
The search functionality offered via the UI is called Graph Search. But the powerful possibilities that offers are not exposed via API. (To protect user privacy, and keep apps from doing extended user profiling via that data.)
Searching via API is limited to what is listed here: https://developers.facebook.com/docs/graph-api/using-graph-api/#search
That’s not much – but it’s all you get.

Facebook Graph api users search

I'm using Facebook graph Api to search users and data that i get is kinda different from that i get from Facebook UI. For example search response of User interface is friends, mutual friends and other related data in first. How can i query to get related data for current user ( i.e friends and mutual friends in first place).
Here is query that i'm using to search users.
https://graph.facebook.com/v2.5/search?fields=id,name,picture.type(normal)&limit=50&q={q}&type=user&access_token={token}
and data that i get is kinda different from that i get from Facebook UI
That’s because those are two completely different things.
The search functionality offered via the UI is called Graph Search. But the powerful possibilities that offers are not exposed via API. (To protect user privacy, and keep apps from doing extended user profiling via that data.)
Searching via API is limited to what is listed here: https://developers.facebook.com/docs/graph-api/using-graph-api/#search
That’s not much – but it’s all you get.

Get Facebook Page Offers that haven't Expired via Graph API

I have a Facebook Page. I am trying to get the Non Expired 'Offers' that exist from the Pages that my Page Likes.
This is what I use to get all the offers (Including Expired):
GRAPH GET (2.5): /210111832375724/likes?fields=offers
(210111832375724 is my page ID)
I have used 'since(now)', but it failed. It seems to work for events, but not offers.
I could just get all offers and then use my software to select ones that haven't expired, but thought I would see if there is a better solution.
Following the Facebook docs, I don't see another possibility then to filter the "valid" ones from the Graph API call's response. There is currently no general way to filter results in the Graph API.
See
https://developers.facebook.com/docs/graph-api/reference/page/offers/#Reading
https://developers.facebook.com/docs/graph-api/reference/v2.5/offer

News Feed via Graph API 'outdated'

On the Graph API documentation, the following is in brackets next to the News Feed endpoint:
this is an outdated view, does not reflect the News Feed on facebook.com
This is a fairly critical method in any app using the Graph API, so what are we supposed to use? Is there a way to obtain a more accurate version of the News Feed with a different API?
I've noticed some differences between what is shown on the website and what is shown through the API but I assumed most of it was down to individual user permissions. Either way this issue is non-trivial and is starting to make regret choosing the Graph API over, say, FQL.
You can use FQL to fetch the news feed. See the documentation under https://developers.facebook.com/docs/reference/fql/stream/
But it seems that the results doesn't differ from the results via the graph api.