在名册openfire xmpp strophe中获取每个用户的全名

时间:2013-10-14 09:32:57

标签: xmpp openfire strophe

这将查询我名单中的所有联系人列表,但它只允许我查询JID而不是全名。如何查询名单并获取每个名字?

$(document).bind('connected', function(){
   var iq = $iq({type: 'get'}).c('query', {xmlns: 'jabber:iq:roster'});
});

感谢。

1 个答案:

答案 0 :(得分:1)

 var iq = $iq({type: 'get'}).c('query', {xmlns: 'jabber:iq:roster'});
conn.sendIQ(iq,
            function success(iq){
                $(iq).find('item').each(function () { //all contacts 
                    var jid = $(this).attr('jid');
                    var name = $(this).attr('name') || jid;
                    var subscr = $(this).attr('subscription'); //type subscription
                    console.log('contacts: jid:' + jid + '  Name:' + name);
                });
            },
            function failure(iq){
                console.log(iq);
            },30000/*timeout sendIQ*/
        );

你也可以和

混在一起
<iq from='userroster@jabber.org'
    id='v1'
    type='get'>
  <vCard xmlns='vcard-temp'/>
</iq>

获取每个用户的vcard,然后获取全名。

试试吧。