7

ウェブページ内にFBチャットを実装したいと思います。Facebook APIを調べたところ、チャットはXMPPを使用した場合にのみ許可されていることがわかりました。まず、Pidginを使用してFBチャットに接続しようとしましたが、正常に機能しました。私の結論は、FBチャットサーバーがXMPPサーバーとして機能しているということでした。これは本当ですか?

XMPPについて読みましたが、交換できるのはhttpリクエスト/レスポンスのみであるため、Webサイト(JavaScript経由およびプラグインなし)では不可能なXMLスタンザを交換するために、クライアントとサーバー間でオープンTCP接続を確立する必要があるようです。 TCP接続はありません。これは、間に何らかのプロキシが存在する必要があることを意味し、認証に関しては、FB APIはX-FACEBOOK-PLATFORMSASL(プロキシがあるためDIGEST MD5ではない)の使用を提案します。明確なチュートリアルや手順が見つかりませんでした。ここでのヘルプに感謝します。

WebまたはブラウザーからのXMPPクライアントについてもう少し調べてみると、 Strophe ( BOSHプロトコルに基づく)と呼ばれるライブラリーと、他の回答ではPunjabと呼ばれるある種の接続マネージャーを使用することになっていることがわかりました。私はこのBOSHプロトコルについて読みました、それは解決策のようですが、いくつかの場所でそれがFBで許可されていないことがわかりました(しかし、この情報がどれほど正しいかはわかりません)。私はこれらをセットアップしようとしましたが、私はどのように始めるか、そして私が実際に何をすべきかについて完全に混乱していました。

ストローフィについては、それを実装する方法の実際のチュートリアルが見つかりませんでした。私が見つけたものでは、最初にejabberdのようなjabberサーバーをセットアップすることを提案しています(私はその必要がありませんでした)。

私の質問は:

誰かが私の目標を達成するために実装すべきアーキテクチャを提案できますか?

それで、ウェブページ->(HTTP)->ストローフィ->(TCP)-> FB-chatがありますか、それとも間にXMPPサーバーがありますか?その理由は?

私の質問への回答をいただければ幸いです。これらすべてを実装する方法へのリンクをいくつか提案してください。私はこれらすべてにまったく慣れていないため、1週間以上迷子になりました。

誰かがすでにこれをした場合は、助けてください。どうもありがとう。

サバ

4

3 に答える 3

3

Facebookチャットサーバーに関する情報:

Protocol: XMPP or Jabber
Username: mathvdh
Domain: chat.facebook.com
Jabber ID: mathvdh@chat.facebook.com
Password: <your Facebook password>
Port: 5222
Server: chat.facebook.com
Use SSL/TLS: no
Allow plaintext authentication: no

ストローフィとパンジャブはfbチャットの有効な組み合わせである必要があると思います。こちらを参照してください:Facebookチャット用のXMPPライブラリ

そして、スキーマは次のようになると思います。

クライアントwebpage/js / strophe <-> yourserver / punjab <->facebookxmppチャットサーバー

于 2011-05-05T13:31:58.907 に答える
1

私もこの問題を解決しようとしています。これまでのところ、次の設定を決定しました。

Jappix mini(JSJAC.jsライブラリを使用)<->私のサーバー上のnode.js上のnode-xmpp-bosh<->Facebookサーバー。

Jappix miniは見つけるのが困難でしたが、これまでで最高のオープンソースチャットバーのようですので、ここで言及する価値があります。

まだすべてを設定していませんが、進捗があればここで更新します。主な問題は、JSJACにFacebookAPIキー認証を使用させる方法です。そのための情報や例は見つかりませんが、ストローフィライブラリ用のこのプラグインを見つけました。

https://github.com/rubenjgarciab/turedsocial/blob/master/strophe-plugins/src/facebook.js

最後に、Facebookの秘密鍵をjavascriptに含めることはできません(秘密であるためです!)。そのため、Facebook REST API auth.promoteSessionサーバー側を使用して、JavaScriptでXに署名するために使用できるセッション秘密鍵を生成する必要があります。 -FACEBOOK-PLATFORM認証リクエスト。

それがお役に立てば幸いです。動作するようになった場合は、さらに追加します。

于 2011-05-19T00:05:08.280 に答える
0

サバ、

前の回答で述べたように、Punjab<->strophe.jsは機能します。ここでFacebookのストローフィクライアントをフォークしました: https://github.com/javierfi​​gueroa/turedsocialそして例を追加しました。

お役に立てれば。

于 2012-01-23T21:25:54.347 に答える