Take the 2-minute tour ×

In my application, most public posts seem to return 'false' when accessed via the Graph API.

Example: https://graph.facebook.com/1543370206_2215254431220?access_token=XXXX

That post is publicly visible, yet querying the above always returns false.

As per similar questions on StackOverflow, I've tried using both an application access token and several different oAuth 2.0 user access tokens with offline_access, but without success.

I've also tried accessing it using the profileid_postid ID format (as above) and postid format (https://graph.facebook.com/2215254431220?access_token=XXXX), but no luck.

I've also retried after 24 hours, just to be sure I'm not exceeding any API limits.

I have tested more than 1,000 public posts (I know they're public because I obtained them from the Graph API using the search method, but I've also done some random sampling in a browser to be sure). 75% returned false (regardless of whether I used an application access token or a user access token).

share|improve this question
Please add a link to the comment on Facebook. –  J Starr Aug 24 '11 at 18:22
facebook.com/… –  pricj004 Aug 25 '11 at 6:31
add comment

3 Answers

up vote 9 down vote accepted

I think I've solved it.

The posts which were returning false aren't 'public' as such. They seem to be visible to any Facebook user, regardless of whether they're friends with the author. However, if you're not logged into Facebook, you can't see them.

The posts which were succeeding were truly public. Most of them belonged to companies etc and you could see them whether you were logged into Facebook or not.

I guess the Graph API makes a distinction between these two types of visibilities e.g. 'Everyone on Facebook' and 'Everyone on the Internet'. I had a look in my privacy settings and can't figure out how this has been done.

Regardless, this isn't well-documented in the Graph API docs. Nor is returning 'false' an elegant way to handle this error. Nor is it consistent to allow me to see the post via search, but not query the object directly.

share|improve this answer
Did you determine what to do to get at these posts? –  Stuart Oct 16 '11 at 15:29
To the best of my knowledge, it can't be done. You can still see them using a browser, so I suppose you could screen scrape, but it's against the T&Cs. –  pricj004 Oct 19 '11 at 6:19
add comment

I know this question is more then one year old - but Graph will return the correct object, if you use a Page access token.

You get those by asking the user for MANAGE_PAGES permission, and then fetching the /Account connection on the user. Each entry in the connection will contain a pageid and a page-specific access token - this token will let you fetch all the page objects from the graph. If you use the your app-token, or users own token, it will return false.

share|improve this answer
add comment

You should consider filing a bug report with Facebook. To add to the issue, I've noticed that these public posts only return false if they are posts by a user object. Posts by page objects work as expected. You are not doing anything wrong, as this is happening in Facebook's Graph API Explorer(this is the example Facebook provides in their API doc for querying public posts).

share|improve this answer
add comment

Your Answer


