获取Facebook 24小时完整新闻的最佳方法是什么?

时间:2013-01-21 16:25:09

标签: facebook facebook-graph-api

获取Facebook用户新闻源的最佳做法是什么? 例如 - 得到最后24小时的新闻。

我看过Graph API和FQL。它们都提供了获取用户feed(/ me / home)的功能,但是两者似乎都为同一个逻辑查询返回不同的结果集,并且似乎都没有返回完整的新闻项集。我想知道这是不是设计。

我已经尝试了不同的时间范围,所以例如在FQL中如果我想要过去24小时,一个简单的解决方案是查询过去的24小时。但这不会返回该范围内的所有帖子。所以下一步是发送24个查询,每个查询的时间窗口为1h。这将返回更多项目,但这也是不完整的。同样,发送4h的块也会返回不同数量的项目。令人惊讶的是,发送6个查询或4h窗口比发送1个窗口的24个查询返回更多结果。当然,这些是我做过的几个测试的经验结果,但不一定描述API的完整行为。

使用图表API也不会返回用户Feed中的完整项目集。

我见过SO上的人提出了围绕这个主题的问题,但是我找不到答案(所以我希望有一个......)

Facebook描述实时API更可靠,因此人们会认为使用实时API是一种强大的方法,将数据存储在我自己的数据库中并构建用户的源代码,只是问题在于实时API确实适用于某些数据项,但它没有为用户的主页提供功能(user.feed包含在实时API中,但它是其他的东西)所以这种方法似乎也不可能。

什么是最佳做法,以便在24小时或48小时范围内获取用户新闻源项目的完整列表?如果这是不可能的 - 通过设计或商业原因,那么最接近的事情是什么?

如果可能的话,我不介意使用实时API之类的东西在我自己的数据库中构建这些数据。 (当然,我将不得不处理扩展一天,但在那之前,我首先必须使功能正常工作......)

我在stackoverflow上看到了一些相关的问题,但没有一个能解决这个问题,所以如果你找到了一个,请随意将我的标记作为dup。

1 个答案:

答案 0 :(得分:1)

Facebook很少会从用户的新闻Feed中返回所有项目。这是设计的。 Graph API文档中有一条说明,指出/me/home返回的内容与用户新闻源中的内容不同,这是设计使然。

在隐私设置中阻止了应用访问权限的任何用户都不会通过API返回其数据,但会在前端显示。无法分辨出被过滤的内容以及原因。开发人员博客上有一篇博客文章,解释了这种过滤的工作原理。

您可以做的最好的事情就是/me/home?since=yesterday&until=today&limit=1000