简体   繁体   中英

Facebook Graph Api - Retrieve only Wall posts that contain a photo

I need to retrieve wall posts from Facebook for a given account, but I'm only interested in posts that contain a photo. Is there a way to add such a filter to a Facebook graph api query? Something like:

https://graph.facebook.com/DigitasLBiNL?fields=feed&type=photo

The facebook data contains a type property which comes back as photo , so I would think this would be possible, but I haven't had any luck going through the facebook sdk documentation or tinkering around.

I know I could do the filtering myself, but I'd prefer to be able to keep the paging property that facebook returns.

The edges

should (as per documentation) both be able to take a filter paramenter, containing filter keys from the stream_filter FQL table ( https://developers.facebook.com/docs/reference/fql/stream_filter/ ).

If I run the FQL

select name, value, type, filter_key from stream_filter where uid=me()

I get the following result:

{
  "data": [
    {
      "name": "News Feed", 
      "value": null, 
      "type": "newsfeed", 
      "filter_key": "nf"
    }, 
    {
      "name": "Status Updates", 
      "value": 2915120374, 
      "type": "application", 
      "filter_key": "app_2915120374"
    }, 
    {
      "name": "Photos", 
      "value": 2305272732, 
      "type": "application", 
      "filter_key": "app_2305272732"
    }, 
    {
      "name": "Links", 
      "value": 2309869772, 
      "type": "application", 
      "filter_key": "app_2309869772"
    }, 
    {
      "name": "Pages", 
      "value": null, 
      "type": "public_profiles", 
      "filter_key": "pp"
    }, 
    {
      "name": "Video", 
      "value": 2392950137, 
      "type": "application", 
      "filter_key": "app_2392950137"
    }, 
    {
      "name": "Notes", 
      "value": 2347471856, 
      "type": "application", 
      "filter_key": "app_2347471856"
    }, 
    {
      "name": "Groups", 
      "value": 2361831622, 
      "type": "application", 
      "filter_key": "app_2361831622"
    }
  ]
}

So, if I choose app_2305272732 as filter key for the photos, I am able to run the follwoing Graph API request successfully:

/me/home?filter=app_2305272732&limit=3

This gives me the three most recent photo posts from my newsfeed.

You want to do this for User/Page feeds (Pages are not supported for filtering according to the docs at https://developers.facebook.com/docs/graph-api/reference/v2.1/page/feed#read ), so I tried this:

/me/feed?filter=app_2305272732&limit=3

Unfortunately, this doesn't return only photo posts, at least for me. So I think this is a bug in the Facebook Graph API.

According to

https://developers.facebook.com/docs/graph-api/reference/stream-filter/

you can use the type filter with value photo

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM