1

获取 facebook 用户的新闻源的最佳做法是什么?
例如 - 获取最近 24 小时的新闻。

我已经查看了 Graph API 和 FQL。它们都提供了获取用户提要 (/me/home) 的功能,但是它们似乎都为相同的逻辑查询返回了不同的结果集,而且似乎都没有返回完整的新闻项目集。我想知道这是否是设计使然。

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

使用图形 API 也不会从用户的提要中返回完整的项目集。

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

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

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

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

我在 stackoverflow 上看到了一些相关的问题,但没有一个可以回答这个问题,所以如果你找到了,请随时将我的标记为 dup。

4

1 回答 1

1

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

任何在其隐私设置中阻止应用访问的用户将永远不会让 API 返回他们的数据,但会在前端显示。没有办法知道被过滤的内容和原因。开发人员的博客上有一篇博文解释了这种过滤的工作原理。

您能做的最好的事情就是要求类似/me/home?since=yesterday&until=today&limit=1000.

于 2013-01-21T16:54:26.787 回答