xmpp Windowsライブメッセンジャーをphpに接続するにはどうすればよいですか? 私は xmpphp と jaxl ライブラリを使用しており、Google トークとの接続に成功しました。
1 に答える
Jaxl ライブラリPLAIN
には、 、google talk X-OAUTH2
、DIGEST-MD5
、CRAM-MD5
、SCRAM-SHA-1
、EXTERNAL
および facebookX-FACEBOOK-PLATFORM
認証メカニズムのサポートが組み込まれています。
また、アプリケーション内で必要になるカスタム認証メカニズムを実装する機能も提供します。X-MESSENGER-OAUTH2
以下に説明するように、認証の実装は簡単です。
JAXL ライブラリの最新バージョンをチェックアウトし、次のように JAXL クライアント オブジェクトを初期化します。
require_once 'jaxl.php';
$client = new JAXL(array(
'jid' => 'messenger.live.com', // <-- dummy jid required for DNS SRV lookup
'pass' => '',
'log_level' => JAXL_DEBUG
));
以下に示すようにイベントのコールバックを登録し、 msdn ドキュメントon_stream_features
の説明に従って認証パケットを送信します。
$client->add_cb('on_stream_features', function($stanza) {
global $client, $access_token;
$auth = new JAXLXml('auth', NS_SASL, array('mechanism'=>'X-MESSENGER-OAUTH2'));
$auth->t($access_token);
$client->send($auth);
return 'wait_for_sasl_response';
});
これでうまくいくはずです。
注: Jaxl ライブラリの現在のバージョンは、DNS SRV ルックアップの入力ジャバー ID に依存しており、そこからソケット接続を確立するためのターゲット ホスト:ポートを抽出します。したがって、上記のようにjid
とにダミーの値を渡す必要があります(これが将来のバージョンで修正されるまで)。pass
上記の手順はテストなしで書きましたが、正常に動作するはずです。JAXLXmlスタイルの XML 作成を使用する方法の詳細については、こちらを参照してください。