3
votes

The Environment

  • I retrieve the Facebook Comments for a Facebook Page of a customer.
  • I have an access token for that Facebook page with the permission scopes "read_stream, read_mailbox, read_page_mailboxes, publish_stream, read_insights, manage_pages, publish_actions".
  • My access token works fine when I debug it through the Facebook Open Graph Debugger (Expires : never, Valid : True).
  • I make un versioned Graph Api Calls (Meaning I am still on V1.0)
  • In general everything works, retrieving, publishing, etc...

The Issue - My Corner case

  • I have one Facebook user 'x' that replies on many posts on the Facebook wall of the customer's Page.
  • When I check my Graph and FQL calls to retrieve the comments, no comments are returned from this user 'x'. All the other comments from other users are present in the API Call results.
  • I made the exact same calls for this posts through the Facebook Graph Api explorer, same issue occurs.
  • I was not able to find any bug report so far in the Facebook Bugs.

What Next ?

  • Is this caused due a privacy setting that the user 'x' has set ? If so, how do you do this ? So I can reproduce this situation.
  • Is this a known Facebook bug ? if so, is there a link to it so I can follow it up ?
  • Does anyone has more information on this ?
  • If this an "expected behaviour", could someone explain why ? So I can communicate to my customer why we can not support this case.
2

2 Answers

2
votes

I have found the reason:

When a user disables the Facebook Platform, all the data will be omitted in Graph Calls. In this case, even when the data is available on Facebook. You can have all permissions you want. You will not be able to retrieve the data from Facebook.

ScreenShotSettings

1
votes

I don't know that this setting is the issue. It looks like you're try to get the posts a user has made publicly on a "page". It seems to me that this setting is for allowing non-Facebook apps/sites/plugins to use Facebook data. This means apps/sites that use the Facebook auth dialog will no longer function, the way it's worded it doesn't seem to exclude Graph API calls for public data because Graph is a Facebook app.

I assume you're using graph HTTP to get the data. What's your actual http request?

I have found that some comments/likes are not visible via an API request because of Facebook's algorithm to determine "Top Story" value. For example.

facebook/posts?fields=id,created_time,comments.limit(1).summary(true)&limit=1

For post ID 20531316728_10153209288311729 only shows 18378 comments in the summary.

However if I add .filter(stream)

facebook/posts?fields=id,created_time,comments.limit(1).summary(true).filter(true)&limit=1

I get 18552 comments in the summary

You can add .summary(true) to likes and comments to get a summary of the total count of each type. Then you add .filter(stream) to force the return of all comments/likes other wise you'll only get the ones that have not been filtered out due to their low "story" value.

See the modifiers section for more info. https://developers.facebook.com/docs/graph-api/reference/v2.2/object/comments (again this also works for likes)