【问题标题】:Real-time update the online_presence for a user's friends, using FQL/Chat API使用 FQL/Chat API 实时更新用户朋友的 online_presence
【发布时间】:2012-12-19 07:18:57
【问题描述】:

我目前正在 facebook 中开发一个应用程序,其中包含登录用户的朋友列表并显示他们的在线状态。为此,我使用了以下 FQL 查询:

SELECT name,uid, online_presence FROM user WHERE online_presence IN ('active', 'idle') AND uid IN ( SELECT uid2 FROM friend WHERE uid1 = me())

friends_online_presence 是扩展权限并返回 Facebook 聊天状态(字符串,活动、空闲、离线或错误之一)。

我的问题是如何获得朋友在线状态变化的实时更新?

选项 1: 在后台进程中定期查询 Facebook API
选项 2: 连接 XMPP 以获得实时更新(下面重复问题的答案)

这里之前也有人问过这个问题,这里有一些重复(未解决):
facebook-api-real-time-friends-online-presence-update &
Is-it-possible-to-subscribe-to-real-time-updates-for-user-online-presence

我想知道是否有人解决了这个问题,如果是,您是如何解决的。

如果您能详细说明一下选项 2(使用 XMPP/Jabber),那就太好了,因为当用户数较少时,我觉得定期查询只够了一段时间.

【问题讨论】:

  • 我接受了唯一的答案,因为如果我不接受并且赏金结束,我将无法接受这个问题的任何答案。
  • 我将处理提供的唯一答案,但仍然开放寻求答案。

标签: ruby-on-rails facebook xmpp facebook-fql facebook-chat


【解决方案1】:

最好的方法是使用 XMPP。

对于通过 XMPP 集成 facebook 聊天,我认为 Rails 中最好的方法是

  1. 导轨 + StropheJS
  2. 除此之外,您还可以添加 ember.js 之类的内容(但这不是必需的)

总的来说,系统看起来像

StropheJS (客户端 JS) ----> XMPP BOSH Manager (eJabberd / Punjab) ----> Facebook 服务器

除此之外,如果您是 XMPP 的新手,那么这本书 "Professional XMPP Programming with JavaScript and jQuery" 值得一读,其中有很多关于 strophejs 的示例

【讨论】:

  • 感谢您的回复,但您的回答并没有真正让我有所收获。你能详细解释一下吗,可能会列出一些可以让我快速完成工作的步骤。
  • @JatinGanhotra 这是一篇博客文章,讨论了如何设置这个(使用 ruby​​ gem xmpp4r)siddharth-ravichandran.com/2011/01/21/…。我计划写下所有必要的步骤,但这需要时间。将很快更新答案。还要检查这是否有帮助slideshare.net/ca168168/realtime-webwithrailsxmpp
  • 感谢您的快速回复。我将从这个开始,同时等待您的更新答案。
  • 我正在向您提供我的赏金代表,将等待您的更新答案和任何可能的帮助。既然你的答案是唯一的答案,如果我不把它奖励给你,我的赏金代表就会丢失,对我们任何人都没有好处。 :)
  • @JatinGanhotra :) 谢谢。计划尽快完成。
猜你喜欢
  • 2013-02-10
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多