Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OpenGraph: how can i specify a filter in FB.api?

I have built a Facebook app using OpenGraph that permits the users to write reviews on concerts, so that I've defined a concert_id attribute on which the user can insert a review.

Now I would like to show all the reviews inserted for a certain concert_id but cannot find a way. If I do (in JS)

FB.api('/me/MY_APP:action', { limit: 0}, function(response) {
    console.log(response);
});

I get all items. This app has to be consumed by mobile, I think it is bad to get all items and, then, filtering only the concert_id i need. What do I have to do to apply a where condition in OpenGraph to a custom action?

like image 861
Cris Avatar asked Dec 28 '22 02:12

Cris


2 Answers

As far as I can tell from the API and the Facebook developer pages, it's not possible to filter a call by custom action property using the public Open Graph API.

Two options I can think of:

Option 1:

Implement the category filter by creating custom category objects:

if "review" is a custom action and

GET https://graph.facebook.com/me/[name_space]:review

returns all review actions then

GET https://graph.facebook.com/me/[name_space]:review/scifi_movie
GET https://graph.facebook.com/me/[name_space]:review/action_movie

return actions specific to movie type, where scifi_movie and action_movie are custom objects. You would need to create one object type for each category.

Option 2:

Implement a custom action for each category, e.g.

review_scifi_movie
review_action_movie 

These are not particularly elegant solutions but perhaps useful as a hack if nothing else works and you really don't want to do filtering on client side.

like image 162
onosendai Avatar answered Jan 17 '23 00:01

onosendai


The Facebook API will not return individual published objects for a particular action, but that's not your only problem. By the look of it, you're trying to bring in ALL the reviews given for a concert, right? (Meaning those by other users too).

The "/me/" part of the Facebook API call will only return those published actions made by the user that is currently logged in. That won't work for you, as you want those of all your users

The only suggestion I can give is to create a simple web service, where you store all the reviews given for the various concerts. Use this service to pull in reviews given for a particular concert. (I use a similar methodology for reviews in an app of my own).

like image 35
Raveesh Bhalla Avatar answered Jan 17 '23 02:01

Raveesh Bhalla