如何将 xmpp windows live messenger 与 php 连接?我正在使用 xmpphp 和 jaxl 库,并且成功连接了 google talk。
问问题
647 次
1 回答
0
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
));
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 id 进行 DNS SRV 查找,从中提取目标主机:端口以建立套接字连接。因此,您必须为 和 传递虚拟值jid
,pass
如上所示(直到在将来的版本中修复此问题)。
我在没有任何测试的情况下编写了上述步骤,但它应该可以正常工作。有关如何使用JAXLXml样式的 XML 创建的更多详细信息,请参见此处。
于 2012-10-06T16:45:03.197 回答