在 Lync 2013 中显示用户图片
Posted
技术标签:
【中文标题】在 Lync 2013 中显示用户图片【英文标题】:Display User Picture in Lync 2013 【发布时间】:2013-10-16 13:13:48 【问题描述】:我正在使用 lync 2013 sdk 开发小型应用程序。 sdk 中是否提供了任何方法,我可以实现一个功能,允许用户使用 SDK 中提供的任何 API 上传他的图片。
如果可能的话,如果用户是在活动目录中配置的,那么最好的存储方式和存储方式是什么?
等待您的积极回应。
问候
阿米特
【问题讨论】:
【参考方案1】:您可以使用 SDK 通过 SDK 获取到照片的流
var photoStream = Client.Self.Contact.GetContactInformation(ContactInformationType.Photo) as System.IO.Stream
虽然您可以读取流,但无法写入,因为此时您正在查看来自 AD 的联系信息。
感觉就像您想写一些东西来更改 AD 的 photoThumbnails 属性中的照片,而不是在 Lync 中。
【讨论】:
感谢保罗的回复。有什么方法可以让用户通过 Lync 2013 SDK 提供的任何 API 在 AD 或 lync 中上传图片? 如何确保我们能够在一次调用中检索图像?因为有时无法检索图像。【参考方案2】:2013 年 12 月 11 日更新
最新的 Lync 更新(Lync 客户端 CU3(11 月更新))可以选择将照片添加回 GUI。
Link to the KB Article Link to the Download可以在此处找到带有解释和屏幕截图的文章:Lync Client CU3 (November Update) – Show a picture from a website!。
原答案
虽然这是一个不同的问题,但我对这个问题 (Displaying a photo for an Application endpoint) 的回答在这里也有效:
基本上,有一个选项可以将用户的照片设置为 URL,但它不再显示在 Lync 2013 客户端界面中(它在 Lync 2010 客户端中存在)。如果您可以获取将图像发布到 Web 可访问位置的代码,则可以将 URL 发布到该位置并以这种方式更改您的用户图片。
供参考,另一个问题的答案:
在LocalEndpoint.LocalOwnerPresence
上发布状态信息(包括照片设置)。 UserEndpoint
和 ApplicationEndpoint
都派生自 LocalEndpoint
,所以这应该是可行的。
实际发布会稍微复杂一些,因为要发布的“级别”有很多不同的组合:
首先,您需要了解大量 InstanceID
值,请在此处阅读它们:Presence data source and category instance ID
其次,存在适用于谁的值,请参阅Microsoft.Rtc.Collaboration.Presence.PresenceRelationshipLevel
。不要在Unknown
上发布,你会得到一个例外。
public enum PresenceRelationshipLevel
Unknown = -1,
Everyone = 0,
External = 100,
Colleagues = 200,
Workgroup = 300,
Personal = 400,
Blocked = 32000,
您需要为用户照片属性发布PresenceCategoryWithMetaData
,它是容器0x5
“状态信息”的一部分。
var photoPresence = new PresenceCategoryWithMetaData(
0x5, // The container id
(int)PresenceRelationshipLevel.Everyone,
new ContactCard(0x5) // Same container ID again
IsAllowedToShowPhoto = true,
PhotoUri = "<uri to your photo here"
);
你也可以在这个对象上设置一个ExpiryPolicy
,真的应该是自我解释的。然后在您的端点上发布此出席对象:
Endpoint.LocalOwnerPresence.BeginPublishPresence(new[] photoPresence , cb =>
Endpoint.LocalOwnerPresence.EndPublishPresence(cb);
, null);
确实应该这样做。我最终明确发布到所有关系级别,因为它没有按逻辑预期级联数据。
【讨论】:
以上是关于在 Lync 2013 中显示用户图片的主要内容,如果未能解决你的问题,请参考以下文章
在 UI 抑制模式下向对话 Lync 2013 SDK 中的特定用户发送 IM 消息