建筑到Facebook聊天从一个网页,(XMPP?Strophe?旁遮普?)

sab*_*bah 7 javascript facebook xmpp strophe facebook-chat

我想在网页中实现FB-chat.我在Facebook API中环顾四周,发现只允许使用XMPP进行聊天.首先,我尝试使用Pidgin连接到FB-chat,它运行正常.我的结论是FB-chat服务器充当XMPP服务器.这是真的?

我读到了关于XMPP,似乎应该在客户端和服务器之间建立一个开放的TCP连接来交换XML节,这是不可能从网站(通过JavaScript和没有插件),因为只有http请求/响应可以交换,那里没有TCP连接.这意味着中间应该存在某种代理,并且对于身份验证,FB API建议使用X-FACEBOOK-PLATFORM SASL(不是DIGEST MD5,因为有代理).我没有找到明确的教程或步骤如何这样做,这里的帮助表示赞赏.

关于来自网络或浏览器的XMPP客户端的更多研究,我看到我应该使用一个名为Strophe的库(基于BOSH协议),在其他答案中使用一种名为Punjab的连接管理器.我读到了这个BOSH协议,它似乎是解决方案,但在某些地方我发现它不允许在FB中(我不确定这个信息有多正确).我试图设置这些,但我完全困惑如何开始和我真正应该做的事情.

对于strophe,我没有找到一个真正的教程如何实现它,并且在我发现,他们建议首先设置像ejabberd的jabber服务器(我没有得到它的需要).

我的问题是:

有人可以建议我应该实现的架构来实现我的目标吗?

那么会有:网页 - >(HTTP) - > Strophe - >(TCP) - > FB-chat或者它之间是否有一个XMPP服务器,为什么?

我很感激任何问题的答案.请建议一些如何实现所有这些东西的链接.我对这一切都是全新的,这让我迷失了一个多星期了.

如果有人已经这样做了,请帮忙.非常感谢.

沙巴

chr*_*679 1

我也在努力解决这个问题。到目前为止,我已经决定了以下设置:

Jappix mini(使用 JSJAC.js 库)<-> 我的服务器上的 node.js 上的 node-xmpp-bosh <-> Facebook 服务器。

Jappix mini 很难找到,但它似乎是迄今为止最好的开源聊天栏,因此在这里值得一提。

我还没有全部设置好,但如果取得进展,我会在这里更新。主要问题是如何让 JSJAC 使用 Facebook API Key 身份验证。我找不到任何信息或示例,但我发现了这个 strope 库的插件,也许可以调整:

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

最后,您不能在 javascript 中包含您的 facebook 密钥(因为它是一个秘密!),因此您需要使用 Facebook REST API auth.promoteSession 服务器端来生成一个会话密钥,该密钥可在 javascript 中用于签署 X -FACEBOOK-PLATFORM 身份验证请求。

希望有帮助,如果/当我让它工作时我会添加更多。