1

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

如果我右键单击 OCS 中的联系人,我会选择“查看联系人卡片”。我想通过 API 访问它!

不幸的是,我在 SDK 文档中找不到任何内容。有一种不受支持的名为“ViewProfile”的方法,我找不到任何关于它的信息。

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

在此先感谢,安德鲁

4

1 回答 1

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/(活着)

于 2010-04-29T06:44:29.573 回答