【问题标题】:Facebook Graph Api - Retrieve only Wall posts that contain a photoFacebook Graph Api - 仅检索包含照片的墙帖
【发布时间】:2014-08-13 14:45:24
【问题描述】:

我需要从 Facebook 检索给定帐户的墙帖,但我只对包含照片的帖子感兴趣。有没有办法将这样的过滤器添加到 Facebook 图形 api 查询中?比如:

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

facebook 数据包含一个 type 属性,它返回为 photo,所以我认为这是可能的,但我没有任何运气通过 facebook sdk 文档或修补。

我知道我可以自己进行过滤,但我希望能够保留 facebook 返回的 paging 属性。

【问题讨论】:

  • Graph API 目前在过滤方面没有提供太多功能。 FQL 可以,但已被弃用——当它最终被删除时,他们很可能会向 API 添加过滤功能,但现在我认为 Graph API 无法实现您想要的。
  • 这很令人失望,但感谢分享。
  • 我正在努力解决类似的问题。我注意到在请求边缘时,我在文档中找不到语法“with()”。还没有弄清楚如何使用它,也许它不能,但我想我会提到以防你或其他人可以解决它:)
  • @RobDenBoer - 我还在 Graph API Explorer 中看到了 with 属性,但无法找到使用它的方法。没有办法指定键值对(type=photo)来限制结果集。除非我错过了什么?
  • with 只能用于过滤包含位置的帖子。文档在这里:developers.facebook.com/docs/graph-api/reference/v2.1/user/…

标签: facebook facebook-graph-api facebook-fql


【解决方案1】:

边缘

应该(根据文档)都可以采用 filter 参数,其中包含来自 stream_filter FQL 表 (https://developers.facebook.com/docs/reference/fql/stream_filter/) 的过滤器键。

如果我运行 FQL

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

我得到以下结果:

{
  "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"
    }
  ]
}

所以,如果我选择app_2305272732 作为照片的过滤键,我可以成功运行以下 Graph API 请求:

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

这为我提供了我的新闻源中最近的三张照片。

您想为用户/页面提要执行此操作(不支持根据https://developers.facebook.com/docs/graph-api/reference/v2.1/page/feed#read 的文档过滤页面),所以我尝试了这个:

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

不幸的是,这不会只返回照片帖子,至少对我来说是这样。所以我认为这是 Facebook Graph API 中的一个错误。

【讨论】:

  • 感谢您的帖子。听起来我自己做过滤会更容易,所以我将采用这种方法。
  • 不客气,很抱歉 FB 没有按文档说明工作。
  • 该死的扎克伯格! 握拳
  • 你是对的 :-) 我正在考虑为这个问题打开一个错误,但根据进一步的经验,我知道这是一条有害的道路......
【解决方案2】:

根据

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

您可以使用type 过滤器,其值为photo

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多