Подключение к Windows Live Messenger XMPP с помощью PHP
Как я могу подключить Windows Live Messenger XMPP с PHP? Я использую библиотеки xmpphp и jaxl и успешно подключился к Google Talk.
1 ответ
Библиотека Jaxl поставляется со встроенной поддержкой PLAIN
, Google Talk X-OAUTH2
, DIGEST-MD5
, CRAM-MD5
, SCRAM-SHA-1
, EXTERNAL
и фейсбук X-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
));
Зарегистрировать обратный звонок для on_stream_features
событие, как показано ниже, и отправка пакета авторизации, как описано в документации msdn:
$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 полагается на входной идентификатор jabber для поиска DNS SRV, откуда она извлекает целевой хост: порт для установления соединения с сокетом. Следовательно, вам придется передать фиктивные значения для jid
а также pass
как показано выше (пока это не будет исправлено в будущих версиях).
Я написал выше шаги без какого-либо тестирования, но он должен работать нормально. Более подробную информацию о том, как работать со стилем создания JAXLXml XML, можно найти здесь.