【问题标题】:How to get my Vcard in agsXMPP?如何在 agsXMPP 中获取我的 Vcard?
【发布时间】:2026-01-29 23:50:01
【问题描述】:

我想从服务器获取我的 Vcard。 我通过此代码将我的 Vcard 发送到服务器:

VcardIq viq = new VcardIq(IqType.set, new Jid(XmppCon.Server));
viq.Vcard.Nickname = "Alex";
XmppCon.Send(viq); 

我从this 知道如何获取其他用户的 Vcard。但是这种方法不适用于我的注册 ID。 谁能帮我从 agsXMPP 中的服务器获取我的 Vcard?

【问题讨论】:

    标签: xmpp vcf-vcard agsxmpp


    【解决方案1】:

    这是一个示例代码

    public void GetMyVcard()
    {
      VcardIq viq = new VcardIq(IqType.get);  
      xmppCon.IqGrabber.SendIq(viq, new IqCB(VcardResult), null);
    }
    
    private void VcardResult(object sender, IQ iq, object data)
    {
      if (iq.Type == IqType.result)
      {
        Vcard vcard = iq.Vcard;
        if (vcard != null)
        {
          string fullname = vcard.Fullname;
          string nickname = vcard.Nickname;
          string description = vcard.Description;
          Photo photo = vcard.Photo;       
        }
      }
    }
    

    【讨论】:

    • 它对我不起作用。这是服务器的响应:{} Vcard 为空跨度>
    • 那么你的 vcard 还没有设置(空)
    • 我确定我的 vcard 已设置,因为其他用户获得了我的 vcard(我的姓名、照片等)。
    • 谢谢亚历克斯,我将我的电子名片发送给服务器,它工作正常。
    最近更新 更多