一种使用单个请求查询新闻源和墙的方法

时间:2012-01-29 19:51:33

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

我正在尝试使用单个请求找到查询新闻Feed和墙的最佳方式。

首次尝试:

  • 以批量请求查询我/ home和me / feed。
  • 问题:由于Graph API错误(显示被阻止的项目,相反没有显示一些应该显示的项目),查询我/ home给我带来不好的结果所以我决定改为FQL,这似乎更好地处理它。

第二次尝试:

  • 使用单批请求查询: (1)我/直接喂。 (2)将filter_key设置为'others'的流表的fql.query。
  • 问题:还需要查询用户名,因为流表只包含ID。

第三次尝试:

  • 使用批量请求查询: (1)我/直接喂 (2)用于流表的fql.multiquery,其中filter_key设置为'others',名称表为“WHERE id IN(SELECT actor_id FROM #stream)”。
  • 问题:失败。它返回“错误:批处理参数必须是JSON数组”,尽管它是一个json数组。

第四次尝试:

  • 使用fql.multiquery获取新闻源流,墙流和名称。
  • 问题:我不知道如何使用FQL获取类似于我/ feed的视图。我能得到的最好的是我自己的所有帖子的列表,但它没有显示用户被标记的照片(所以我想更多的东西都没有了。)

感谢任何提示。

1 个答案:

答案 0 :(得分:1)

由于FQL没有进行SQL样式连接,因此目前无法从一个查询中的多个表中获取信息。

  1. 在流表上使用FQL获取要显示的帖子列表,确保获取source_id。 source_id可以是用户ID,页面ID,事件ID,组ID,也可能有更多的对象,只是不记得我的头脑。 (您可能还希望对actor_id,target_id和viewer_id进行类似的缓存)
  2. 将source_id缓存在字典样式数据缓存中,其中source_id为PK。
  3. 通过缓存循环,查找没有
  4. 信息的缓存
  5. 尝试根据id从用户表中获取信息,然后在页面表,事件表和组表中获取信息,直到找到该ID所属的内容为止。将信息存储在缓存中
  6. 用于显示将流表项与source_id信息合并在一起。