2

私は現在、ログインしているユーザーの友人のリストを持ち、オンラインでの存在を示す 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 にフックしてリアルタイムの更新を取得する (以下の重複する質問からの回答) .

人々はここでもこの質問をしましたが、いくつかの重複(未解決)が あります
:
-for-user-online-presence .

誰かが問題を解決したかどうか、もしそうなら、どのように解決したかを知りたかった.

オプション 2 (XMPP/Jabber を使用)について少し詳しく説明していただければ幸いです。ユーザー数が少ないときは、定期的にクエリを実行するだけで十分だと思うからです。

4

1 に答える 1

3

最善の方法は、XMPPを使用することです。

XMPPを介してFacebookチャットを統合するには、Railsでの最善の方法は

  1. Rails + StropheJS
  2. これに加えて、ember.jsのようなものを含めることができます(ただし、これは必須ではありません)

全体として、システムは次のようになります

StropheJS(クライアント側JS)----> XMPP BOSHマネージャーeJabberd / Punjab)---->Facebookサーバー

これらすべてに加えて、XMPPを初めて使用する場合は、「JavaScriptとjQueryを使用したプロフェッショナルなXMPPプログラミング」という本を読む価値があり、strophejsを使用した例がたくさんあります。

于 2013-01-08T16:53:03.617 に答える