1

Facebook/gtalk カスタム チャット ウィンドウを作成しようとしています。xmpp_login パーミッションを持つ Facebook アプリケーションを既に作成し、ユーザーによって承認されています。

私は以下を使用しています:

  1. ノード-xmpp-ボッシュ
  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によると、「item-not-found」という応答が返されます。理由は次のいずれかである可能性があります。

  1. 「sid」は無効です
  2. 「ストリーム」は無効です
  3. 'rid' は、予想されるウィンドウの上限を超えています
  4. 接続マネージャーが応答を再送信できません
  5. 「キー」シーケンスが無効です

アップデート


以下を使用した strophe.js ログを次に示します。

  • パンジャーブ
  • ノード js XMPP
  • Node js XMPP with pidgin_compatible: 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'/>

NODEログ


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

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 に答える
2

1週間以上の闘争の後、私はそれを機能させ、ノードサーバーの代わりにパンジャブに切り替え、すべて正常に機能しました. したがって、基本的に構造は次のとおりです。

Strophe.js <-> Apache (プロキシ) <-> 語呂合わせ <-> Facebook XMPP サーバー

于 2012-07-29T07:26:16.763 に答える
1
LOG: request id 4.0 posting 

ログ: リクエスト ID 4.0 の状態が 1 に変更されました 送信: このパケットに問題が見られます。認証リクエストが空のリクエストである必要があります。

->最新のリビジョンを取得してみてください。
->「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 に答える