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

时间:2011-05-05 12:42:50

标签: 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 协议)并且其他答案是某种称为旁遮普的连接管理器。我读到了这个BOSH协议,它似乎是解决方案,但在某些地方我发现它不允许在FB中(我不确定这个信息有多正确)。我试图设置这些,但我完全混淆了如何开始和我真正应该做的事情。

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

我的问题是:

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

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

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

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

沙巴

3 个答案:

答案 0 :(得分:3)

有关facebook chat server的信息:

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

我认为strophe和旁遮普应该是fb聊天的工作组合,请看这里:XMPP library for facebook chat

我认为架构更像是:

客户网页/ js / strophe&lt; - &gt; yourserver / punjab&lt; - &gt; facebook xmpp聊天服务器

答案 1 :(得分:1)

我也试图解决这个问题。到目前为止,我已决定设置:

Jappix mini(使用JSJAC.js库)&lt; - &gt;我的服务器上的node.js上的node-xmpp-bosh&lt; - &gt; Facebook服务器。

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

我还没有完成所有设置,但如果我取得进展,将在此处更新。主要问题将是如何使JSJAC使用Facebook API Key身份验证。我找不到任何信息或示例,但我发现这个插件可以适应strophe库:

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

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

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

答案 2 :(得分:0)

沙巴,

如前面的答案中所提到的,Punjab&lt; - &gt; strophe.js有效。我在这里分发了facebook strophe客户端:https://github.com/javierfigueroa/turedsocial我添加了一个例子。

希望这有帮助。