从C#中的Office Communicator(OCS)SDK获取联系人配置文件信息?

时间:2009-07-10 08:57:58

标签: c# ocs

我的公司使用MS Office Communicator Server(OCS)2007 R2,我使用SDK访问C#。

如果我右键点击OCS中的联系人,我会选择“查看联系人卡片”。我希望通过API访问此内容!

不幸的是,我无法在SDK文档中找到任何内容来实现此目的。有一个名为'ViewProfile'的方法不受支持,我找不到任何关于它的内容。

我当然可以直接转到联系人的Active Directory帐户,但这需要我的机器通过VPN连接到组织。由于我们大多数人都“离线”工作,我宁愿不这样做。 (我需要的数据无论如何都在OCS!)

先谢谢,安德鲁

1 个答案:

答案 0 :(得分:0)

如果您订阅目标用户的状态更新,则可以使用“contactCard”状态协议类型捕获此信息...

// Event handler to process remote target's presence notifications
void RemotePresence_PresenceNotificationReceived(object sender, RemotePresenceNotificationEventArgs e)
{
    // Notifications contain all the notifications for one user.
    foreach (RemotePresentityNotificationData notification in e.Notifications)
    {
        // Each user will send a list of updated categories. We will choose the ones we're interested in and process them.
        foreach (PresenceCategoryWithMetaData category in notification.Categories)
        {
            if (category.Name.Equals("contactCard"))
            {
                //get the xml data
                string rawXml = category.CreateInnerDataXml();
                if (rawXml == null || rawXml.Trim().Length == 0)
                {
                    break;
                }

                StringReader reader = new StringReader(rawXml);
                XmlDocument metadataDocument = new XmlDocument();
                metadataDocument.Load(reader);
                // Traverse the xml to get the phone numbers
            }
        }
    }
}

上面的代码更详细,有关如何订阅远程用户的状态更新的信息可以在这里找到...

http://blogs.claritycon.com/blogs/michael_greenlee/archive/2009/03/10/subscribe-to-presence-in-ucma-v2-0.aspx(死)

http://blog.greenl.ee/2009/03/11/subscribing-to-presence-in-ucma-2-0/(活着)