【问题标题】:Integration with Facebook Graph Api - update mechanism without Real-Time Updates与 Facebook Graph Api 集成 - 无需实时更新的更新机制
【发布时间】:2012-01-11 17:20:08
【问题描述】:
  • 我正在开展一个项目,该项目使用 Facebook Graph Api 下载有关我们应用程序用户及其 Facebook 朋友的信息。需要更新这些数据,但据我了解,实时更新不是一种选择。例如,我想更新我们应用用户的朋友的个人资料提要,但我看不到通过实时更新来做到这一点的方法。
  • 有人可以给我一些关于这个更新机制的建议吗?我需要更新应用用户、他们的朋友连接以及用户及其朋友的个人资料提要。我知道我必须轮询 Facebook 服务器来检索这些数据。我试图找出做这些事情时的一些好的做法。更新频率?识别数据已更改的方式?如果有人对这种事情有经验,那么每个建议都将意义重大。

谢谢。

【问题讨论】:

  • 组织你的问题(使用项目符号)

标签: java facebook-graph-api


【解决方案1】:

您可以使用 Graph API 调用的 since= 查询字符串参数。这里有一些伪代码可以帮助你

var usersLastPostDate = GetLastPostDateFromDataStore(userId);
if(usersLastPostDate not populated) {
   streamItems = GraphApiGet(userId, "me/feed")
   lastStreamItemDate = GetNewestStreamItemDate(streamItems)
   StoreLastPostDateIntoDataStore(userId, lastStreamItemDate )
}
else {
   streamItems = GraphApiGet(userId, "me/feed?since=" + usersLastPostDate )
}

【讨论】:

  • 感谢您的快速回答,我将尝试使用 since 参数
  • 如果您认为这回答了您的问题,请务必接受此答案,以免问题出现在未回答列表中。见:meta.stackexchange.com/questions/5234/…
  • 好的,我一有解决方案的反馈就会这样做
  • 因为如果我可以在帖子的 updated_time 而不是 created_time 上使用它会非常有用,因为我想在现有帖子上获得新的喜欢和 cmets...我没有找到使用的方法在我的请求中完全没有更新时间(即使使用 FQL)。
  • 这是一个不同的问题。请为此在 StackOverflow 上提出一个新问题。
【解决方案2】:

对您的用例没有多大用处(因为您想要获取频繁更改的数据),但值得指出的是 Graph API 现在支持 ETags - https://developers.facebook.com/blog/post/627/

ETags 会告诉您数据自您上次请求以来是否发生了变化。这不会阻止您达到 Facebook 的 API 限制,但可以快速简便地判断数据自您上次请求以来是否发生了变化。

您的问题没有一个答案,因为这取决于您的应用程序在做什么。您需要多久获取一次更新信息?如果您的数据过期 5 分钟,这真的有问题吗?当某些用户操作需要您获取数据时,您可以懒惰地从 Facebook 获取数据吗?

如果您确实需要进行大量轮询,请尝试使用非阻塞 IO,尤其是当您希望在轮询时向 Facebook 发出大量开放的 HTTP 请求时。构建可靠的队列机制和 HTTP Poker,以确保按预期发出请求。如果不知道您正在使用什么技术堆栈,很难比这更具体。

HTH

【讨论】:

  • 感谢您的详细回复。我将尝试将 ETags 用于不经常更改的数据。数据可能会陈旧一段时间,我将尝试在过时的信息和频繁的轮询之间找到一些权衡。更新不是由用户操作触发的,它也将是一个单独的服务器。我正在使用 RestFb rest api 客户端从 FB 检索数据。
【解决方案3】:

【讨论】:

  • 我认为这是实时更新。我上面提到过,我认为它不符合我的要求。如果我错了,请纠正我。
  • @njosa,你是对的。他们提供的链接用于实时更新。
  • 我想你可以。我只是为一个 fb 应用程序做了这个,它按说明工作。大约 30 秒的个人资料修改(我订阅了朋友列表更改)后,我收到来自 fb 的回调,告诉我我必须为该用户朋友列表更新我的缓存。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多