2012-04-10 15 views
0

私は自分自身のphp boshコネクタを作成していますので、 はstropheに接続できます。ここに私の交換があり、私はバッドを得ています 認証エラー(これはGoogle固有のエラーです)。交換は正常にstropheと接続すると のストロープ内とまったく同じように見えますが、問題が分かっていますか?phpを使用してboshサーバー経由でgoogle talkに接続

<body rid='5559198240000' xmlns='http://jabber.org/protocol/httpbind' 
to='babson.edu' xml:lang='en' wait='60' hold='1' window='5' 
content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' 
xmlns:xmpp='urn:xmpp:xbosh'/> 

string(500) "<body xmlns='http://jabber.org/protocol/httpbind' 
inactivity='60' secure='true' authid='BECF5BCD50577C01' content='text/xml; 
charset=utf-8' window='5' polling='15' 
sid='4ad843a8e15c79e34976783c96785bd5' 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><mecha 
nism>X-GOOGLE-TOKEN</mechanism><mechanism>X-OAUTH2</mechanism></mechanisms> 
</stream:features></body>" 


<body rid='5559198240001' xmlns='http://jabber.org/protocol/httpbind' 
sid='4ad843a8e15c79e34976783c96785bd5'><auth 
xmlns='urn:ietf:params:xml:ns:xmpp-sasl' 
mechanism='PLAIN'>same_base_64_translated_string_as_in_strophe=</auth></bod 
y> 

string(24) "Error=BadAuthentication 

私がチェックしたとbase_64のSASLエンコードされた文字列は、まさに私が正常に接続私の詩句のログと同じです。しかし、同じ正確なXMLを送信する私のPHPプログラムは、このBadAuthenticationエラーを取得します。

答えて

1

私が間違っていたカール・ヘッダを使用していました:

これは、この記事を見つけた他の誰のためにBOSHと話すカール使用する正しい方法です:

$ch = curl_init($bosh_url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlpost); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$header = array('Accept-Encoding: gzip, deflate','Content-Type: text/xml; charset=utf-8'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_VERBOSE, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$response = curl_exec($ch); 
var_dump($response); 
関連する問題