我的公司使用MS Office Communicator Server(OCS)2007 R2,我使用SDK访问C#。
如果我右键点击OCS中的联系人,我会选择“查看联系人卡片”。我希望通过API访问此内容!
不幸的是,我无法在SDK文档中找到任何内容来实现此目的。有一个名为'ViewProfile'的方法不受支持,我找不到任何关于它的内容。
我当然可以直接转到联系人的Active Directory帐户,但这需要我的机器通过VPN连接到组织。由于我们大多数人都“离线”工作,我宁愿不这样做。 (我需要的数据无论如何都在OCS!)
先谢谢,安德鲁
答案 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://blog.greenl.ee/2009/03/11/subscribing-to-presence-in-ucma-2-0/(活着)