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



我正试图找到使用单个请求同时查询新闻提要和墙的最佳方法。

第一次尝试:

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

第二次尝试:

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

第三次尝试:

  • 使用批处理请求查询:(1) me/feed直接(2) 针对filter_key设置为'others'的流表和具有"WHERE id IN(SELECT actor_id FROM#stream)"的名称表的fql.multiquery
  • 问题:失败。它返回"错误:批处理参数必须是一个JSON数组",尽管它是一个JSON数组

第四次尝试:

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

感谢任何提示。

由于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. 尝试根据id从用户表、页面表、事件表和组表中获取信息,直到找到该id所属的信息。将信息存储在缓存中
  5. 为了显示,将流表项目与source_id信息合并在一起

最新更新