1

我正在尝试创建一个 facebook/gtalk 自定义聊天窗口。已经创建了一个具有 xmpp_login 权限的 Facebook 应用程序并由我的用户批准。

我正在使用以下内容:

  1. 节点-xmpp-bosh
  2. jquery.xmpp.js

当我使用提供的基本示例时,我可以使用我的凭据登录 gmail,但不能登录 facebook。当我将 BOSH 服务器从http://bosh.metajack.im:5280/xmpp-httpbind -> 更改为我自己的时,我无法连接到任何服务器。

这是我从示例服务器的 gmail 得到的响应:

<body xmlns='http://jabber.org/protocol/httpbind' inactivity='60' secure='true' authid='C410DDF349E5D6E4'
      content='text/xml; charset=utf-8' window='3' polling='15' sid='d97ad59c8741b5c97fc5d267cf9fa6d8' requests='2'
      wait='60'>
<stream:features xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'>
    <mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
        <mechanism>PLAIN</mechanism>
        <mechanism>X-GOOGLE-TOKEN</mechanism>
        <mechanism>X-OAUTH2</mechanism>
    </mechanisms>
</stream:features>
</body>

这是我从我自己的 BOSH 服务器得到的

<body xmlns="http://jabber.org/protocol/httpbind" stream="7b7a5898-7d44-4459-b135-25d56db49f63"
      sid="66aec966-aba0-4021-b728-ae1879caee3a" wait="60" ver="1.6" polling="35" inactivity="70" requests="2" hold="1"
      from="gmail.com" content="text/xml; charset=utf-8" xmpp:restartlogic="true" xmlns:xmpp="urn:xmpp:xbosh"
      window="2">
</body>

我错过了什么,在连接到 Facebook 之前我还需要采取什么其他步骤吗?

更新


通过 Kissrobber找到了Facebook+Node聊天的示例,我让它在我的本地机器上运行,但在尝试连接 strophe.js 时仍然出现错误。

根据XMPP.org的说法,我收到“未找到项目”的响应,原因可能是以下之一:

  1. “sid”无效
  2. “流”无效
  3. 'rid' 大于预期窗口的上限
  4. 连接管理器无法重新发送响应
  5. 'key' 序列无效

更新


以下是 strophe.js 使用的日志:

  • 旁遮普
  • 节点 js XMPP
  • 具有 pidgin_compatible 的节点 js XMPP:true

旁遮普日志


Connecting status -> [1, null] facebook.html:24
Strophe is connecting. facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: request id 1.0 posting facebook.html:20
LOG: request id 1.0 state changed to 1 facebook.html:20
SEND: <body rid='765843050' xmlns='http://jabber.org/protocol/httpbind' to='chat.facebook.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/> facebook.html:20
Connecting status -> [1, null] facebook.html:24
Strophe is connecting. facebook.html:20
LOG: _throttledRequestHandler called with 2 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 2.0 posting facebook.html:20
LOG: request id 2.0 state changed to 1 facebook.html:20
SEND: <body rid='765843051' xmlns='http://jabber.org/protocol/httpbind' to='chat.facebook.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/> facebook.html:20
LOG: request id 2.1 state changed to 2 facebook.html:20
LOG: request id 2.1 state changed to 3 facebook.html:20
LOG: request id 2.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 2 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 2.1 got 200 facebook.html:20
LOG: _connect_fb was called facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind' inactivity='60' secure='true' authid='89141C54' content='text/xml; charset=utf-8' window='3' polling='15' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701' requests='2' wait='60'><stream:features xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms></stream:features></body> facebook.html:20
Connecting status -> [3, null] facebook.html:24
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 3.0 posting facebook.html:20
LOG: request id 3.0 state changed to 1 facebook.html:20
SEND: <body rid='765843052' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='X-FACEBOOK-PLATFORM'/></body> facebook.html:20
LOG: request id 3.1 state changed to 2 facebook.html:20
LOG: request id 3.1 state changed to 3 facebook.html:20
LOG: request id 3.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 3 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 3.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>dmVyc2lvbj0xJm1ldGhvZD1hdXRoLnhtcHBfbG9naW4mbm9uY2U9QjRGRjZBOTNDQUFENjlCMjYxQzkzNDczQjE5NUUwMDU=</challenge></body> facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 4.0 posting facebook.html:20
LOG: request id 4.0 state changed to 1 facebook.html:20
SEND: <body rid='765843053' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>YXBpX2tleT0zMzE1MzAyNzM1ODg1OTAmY2FsbF9pZD0xMzQzNzIzNzY5Jm1ldGhvZD1hdXRoLnhtcHBfbG9naW4mbm9uY2U9QjRGRjZBOTNDQUFENjlCMjYxQzkzNDczQjE5NUUwMDUmYWNjZXNzX3Rva2VuPUFBQUV0aG1nd2hXNEJBRTRkUHVubVRqOUJoV0V1WkN3WFpBUVBkYnFJSG9yUGRFNkdxUnhxSldvWkJLUHM2VmNqbUJSbnlWUGlFaG9BdDBLYmdLa2xpV0pQVWRmd3VCNENPcklwWkFkck9RWkRaRCZ2PTEuMA==</response></body> facebook.html:20
LOG: request id 4.1 state changed to 2 facebook.html:20
LOG: request id 4.1 state changed to 3 facebook.html:20
LOG: request id 4.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 4 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 4.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/></body> facebook.html:20
LOG: SASL authentication succeeded. facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 5.0 posting facebook.html:20
LOG: request id 5.0 state changed to 1 facebook.html:20
SEND: <body rid='765843054' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701' to='chat.facebook.com' xml:lang='en' xmpp:restart='true' xmlns:xmpp='urn:xmpp:xbosh'/> facebook.html:20
LOG: request id 5.1 state changed to 2 facebook.html:20
LOG: request id 5.1 state changed to 3 facebook.html:20
LOG: request id 5.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 5 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 5.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><stream:features xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features></body> facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 6.0 posting facebook.html:20
LOG: request id 6.0 state changed to 1 facebook.html:20
SEND: <body rid='765843055' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><iq type='set' id='_bind_auth_2' xmlns='jabber:client'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/></iq></body> facebook.html:20
LOG: request id 6.1 state changed to 2 facebook.html:20
LOG: request id 6.1 state changed to 3 facebook.html:20
LOG: request id 6.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 6 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 6.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' type='result' id='_bind_auth_2'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>-626048146@chat.facebook.com/168823c4_4C61C1205A1E5</jid></bind></iq></body> facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 7.0 posting facebook.html:20
LOG: request id 7.0 state changed to 1 facebook.html:20
SEND: <body rid='765843056' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><iq type='set' id='_session_auth_2' xmlns='jabber:client'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq></body> facebook.html:20
LOG: request id 7.1 state changed to 2 facebook.html:20
LOG: request id 7.1 state changed to 3 facebook.html:20
LOG: request id 7.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 7 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 7.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' type='result' id='_session_auth_2'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq></body> facebook.html:20
Connecting status -> [5, null] facebook.html:24
Strophe is connected. facebook.html:20
Send a message to -626048146@chat.facebook.com/168823c4_4C61C1205A1E5 to talk to me. facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 8.0 posting facebook.html:20
LOG: request id 8.0 state changed to 1 facebook.html:20
SEND: <body rid='765843057' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><presence xmlns='jabber:client'/></body> facebook.html:20
LOG: request id 8.1 state changed to 2 facebook.html:20
LOG: request id 8.1 state changed to 3 facebook.html:20
LOG: request id 8.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 8 should now be removed facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 8.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-744782602@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>fe60b81022f853cc7feb596f443885e90f6631fe</photo></x></presence></body> facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: Request 1 timed out (secondary), restarting facebook.html:20
LOG: request id 1.1 state changed to 4 facebook.html:20
LOG: request id 9.1 posting facebook.html:20
LOG: request id 9.1 state changed to 1 facebook.html:20
SEND: <body rid='765843050' xmlns='http://jabber.org/protocol/httpbind' to='chat.facebook.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/> facebook.html:20
LOG: request id 9.2 state changed to 2 facebook.html:20
LOG: request id 9.2 state changed to 3 facebook.html:20
LOG: request id 9.2 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 0 requests facebook.html:20
LOG: request id 9 should now be removed facebook.html:20
LOG: request id 9.2 got 200 facebook.html:20
LOG: _connect_fb was called facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind' inactivity='60' secure='true' authid='CE3FA949' content='text/xml; charset=utf-8' window='3' polling='15' sid='bb0248e53bf29aa66162aa2884e08ec3d6c2302a' requests='2' wait='60'><stream:features xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms></stream:features></body> facebook.html:20
Connecting status -> [3, null] facebook.html:24
LOG: _throttledRequestHandler called with 0 requests facebook.html:20
LOG: request id 10.0 posting facebook.html:20
LOG: request id 10.0 state changed to 1 facebook.html:20
SEND: <body rid='765843058' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='X-FACEBOOK-PLATFORM'/></body> facebook.html:20
LOG: request id 10.1 state changed to 2 facebook.html:20
LOG: request id 10.1 state changed to 3 facebook.html:20
LOG: request id 10.1 state changed to 3 facebook.html:20
LOG: request id 10.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 0 requests facebook.html:20
LOG: request id 10 should now be removed facebook.html:20
LOG: request id 10.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-635374690@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>98addc5cda3a34a0ecd0b9e09ae900eddcbbb8ea</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-1009827716@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>105af5c5b0c5f028d93dca6e37f2c174dc4a62a5</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-1021952545@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>e5d4693f8712d828f1b18d61e7f138511fc04968</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-503274069@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>6c235c1472d7b370771182085f9d0983b980e8b7</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-573139239@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>2f36c33ac86713a73a910db55f9ecac00e19ae63</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-539881693@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>eea1e5844ad62abad6043a39e8a3d66619490360</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-100000177388719@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>af784e43277ded69c16dcc02bffec6bf883b6e71</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-549474003@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>da16587560467f05f8b97810cbe0c59c01a1fb7c</photo></x></presence><presence xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='-1366794447@chat.facebook.com'><x xmlns='vcard-temp:x:update'><photo>5177a3daefecf3f2d5cac28809f8186ff3168ca8</photo></x></presence></body> facebook.html:20
LOG: no requests during idle cycle, sending blank request facebook.html:20
LOG: request id 11.0 posting facebook.html:20
LOG: request id 11.0 state changed to 1 facebook.html:20
SEND: <body rid='765843059' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'/> facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
I sent -100000177388719@chat.facebook.com: TEST MESSAGE facebook.html:20
LOG: request id 12.0 posting facebook.html:20
LOG: request id 12.0 state changed to 1 facebook.html:20
SEND: <body rid='765843060' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'><message to='-100000177388719@chat.facebook.com' type='chat' xmlns='jabber:client'><body>TEST MESSAGE</body></message></body> facebook.html:20
LOG: request id 11.1 state changed to 2 facebook.html:20
LOG: request id 11.1 state changed to 3 facebook.html:20
LOG: request id 11.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 11 should now be removed facebook.html:20
LOG: request id 11.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'/> facebook.html:20
LOG: request id 12.1 state changed to 2 facebook.html:20
LOG: request id 12.1 state changed to 3 facebook.html:20
LOG: request id 12.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 0 requests facebook.html:20
LOG: request id 12 should now be removed facebook.html:20
LOG: request id 12.1 got 200 facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind'><iq xmlns='jabber:client' to='-626048146@chat.facebook.com/168823c4_4C61C1205A1E5' from='chat.facebook.com' id='fbiq4C61C13A7D2DD' type='set'><own-message xmlns='http://www.facebook.com/xmpp/messages' to='-100000177388719@chat.facebook.com' self='true'><body>TEST MESSAGE</body></own-message></iq></body> facebook.html:20
LOG: no requests during idle cycle, sending blank request facebook.html:20
LOG: request id 13.0 posting facebook.html:20
LOG: request id 13.0 state changed to 1 facebook.html:20
SEND: <body rid='765843061' xmlns='http://jabber.org/protocol/httpbind' sid='cb26009594cffefe0fe73cf4733ac2f7c8522701'/>

节点日志


Connecting status -> [1, null] facebook.html:24
Strophe is connecting. facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: request id 1.0 posting facebook.html:20
LOG: request id 1.0 state changed to 1 facebook.html:20
SEND: <body rid='627577970' xmlns='http://jabber.org/protocol/httpbind' to='chat.facebook.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/> facebook.html:20
Connecting status -> [1, null] facebook.html:24
Strophe is connecting. facebook.html:20
LOG: _throttledRequestHandler called with 2 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 2.0 posting facebook.html:20
LOG: request id 2.0 state changed to 1 facebook.html:20
SEND: <body rid='627577971' xmlns='http://jabber.org/protocol/httpbind' to='chat.facebook.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/> facebook.html:20
LOG: request id 1.1 state changed to 2 facebook.html:20
LOG: request id 1.1 state changed to 3 facebook.html:20
LOG: request id 1.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 1 should now be removed facebook.html:20
LOG: request id 1.1 got 200 facebook.html:20
LOG: _connect_fb was called facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind' xmlns:xmpp='urn:xmpp:xbosh' stream='fc2182d8-124c-432f-aff0-bf8f58cd580d' sid='c8a300fc-28b7-49cc-8373-a8b3db5f894b' wait='60' ver='1.6' polling='35' inactivity='70' requests='2' hold='1' from='chat.facebook.com' content='text/xml; charset=utf-8' xmpp:restartlogic='true' window='2'/> facebook.html:20
LOG: _throttledRequestHandler called with 2 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 3.0 posting facebook.html:20
LOG: request id 3.0 state changed to 1 facebook.html:20
SEND: <body rid='627577972' xmlns='http://jabber.org/protocol/httpbind' sid='c8a300fc-28b7-49cc-8373-a8b3db5f894b'/> facebook.html:20
LOG: request id 2.1 state changed to 2 facebook.html:20
LOG: request id 2.1 state changed to 3 facebook.html:20
LOG: request id 2.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 2 should now be removed facebook.html:20
LOG: request id 2.1 got 200 facebook.html:20
LOG: _connect_fb was called facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind' xmlns:xmpp='urn:xmpp:xbosh' stream='0739f763-51dc-4fa6-ae73-9c422898f8df' sid='f168a14f-c4e4-4796-b815-69cacddb82a2' wait='60' ver='1.6' polling='35' inactivity='70' requests='2' hold='1' from='chat.facebook.com' content='text/xml; charset=utf-8' xmpp:restartlogic='true' window='2'/> facebook.html:20
LOG: _throttledRequestHandler called with 2 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 4.0 posting facebook.html:20
LOG: request id 4.0 state changed to 1 facebook.html:20
SEND: <body rid='627577973' xmlns='http://jabber.org/protocol/httpbind' sid='c8a300fc-28b7-49cc-8373-a8b3db5f894b'/> facebook.html:20
LOG: request id 3.1 state changed to 2 facebook.html:20
LOG: request id 3.1 state changed to 3 facebook.html:20
LOG: request id 3.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 1 requests facebook.html:20
LOG: _processRequest: first request has readyState of 1 facebook.html:20
LOG: request id 3 should now be removed facebook.html:20
LOG: request id 3.1 got 200 facebook.html:20
LOG: _connect_fb was called facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind' condition='item-not-found' type='terminate'/> facebook.html:20
Connecting status -> [2, "item-not-found"] facebook.html:24
       ERR:[Strophe failed to connect!!!] - Strophe.Status.CONNFAIL facebook.html:20
LOG: User connection callback caused an exception: TypeError: Cannot set property 'value' of undefined facebook.html:20
LOG: request id 4.1 state changed to 2 facebook.html:20
LOG: request id 4.1 state changed to 3 facebook.html:20
LOG: request id 4.1 state changed to 4 facebook.html:20
LOG: removing request facebook.html:20
LOG: _throttledRequestHandler called with 0 requests facebook.html:20
LOG: request id 4 should now be removed facebook.html:20
LOG: request id 4.1 got 200 facebook.html:20
LOG: _connect_fb was called facebook.html:20
RECV: <body xmlns='http://jabber.org/protocol/httpbind' condition='item-not-found' message='Invalid packet' type='terminate'/> facebook.html:20
Connecting status -> [2, "item-not-found"] facebook.html:24
       ERR:[Strophe failed to connect!!!] - Strophe.Status.CONNFAIL facebook.html:20
LOG: User connection callback caused an exception: TypeError: Cannot set property 'value' of undefined
4

3 回答 3

2

经过一周多的努力,我让它开始工作,我切换到旁遮普语而不是节点服务器,一切正常。所以基本上结构是:

Strophe.js <-> Apache(代理)<-> 旁遮普语 <-> Facebook XMPP 服务器

于 2012-07-29T07:26:16.763 回答
2

node-xmpp-bosh 的作者在这里。

尝试使用 pidgin_compatible: true (在配置文件中)运行服务器。

这可能是 jquery.xmpp.js 中的一个错误,它无法处理当 bosh 服务器发送空正文作为第一个响应而不是<stream:features/>数据包的情况。根据 BOSH 规范,两者都是有效的。您可以尝试使用 jquery.xmpp.js 项目提交错误。node-xmpp-bosh 应该可以与 strophe.js 一起使用。如果没有,您可能会提交错误。

于 2012-07-31T03:21:06.017 回答
1
LOG: request id 4.0 posting 

日志:请求 id 4.0 状态更改为 1 发送:问题看起来在这个数据包中。这里应该是 Auth 请求,但它的请求是空的。

-> 尝试获取最新版本。
-> 并确保您调用的方法是“facebookConnect = function (jid, callback, wait, hold, apiKey, accessToken)”
-> 应该调用这个方法。

function login() {
    FB.getLoginStatus(function(response) {
      if (response.authResponse) {
        connection.facebookConnect(
            response.authResponse.userId + "@chat.facebook.com/test", 
            onConnect, 
            60,
            1, 
            FB._apiKey,
            response.authResponse.accessToken);
        FB.api('/me/friends', function(response) {
            var to = $("#to");
            to.empty();
          $.each(response.data, function(i,v){
            to.append($("<option value='" + v.id + "'>" + v.name + "</option>"));
          });
        });

      } else {
       connection.disconnect();
      }
    });
}
于 2012-07-28T18:48:22.720 回答