1

我正在使用 lync 2013 sdk 开发小型应用程序。sdk 中是否提供了任何方法,我可以实现一个功能,允许用户使用 SDK 中提供的任何 API 上传他的图片。

如果可能的话,如果用户在活动目录中配置,那么存储它的最佳方式是什么以及在哪里?

等待您的积极回应。

问候

阿米特

4

2 回答 2

0

您可以使用 SDK 通过 SDK 获取照片流

var photoStream = Client.Self.Contact.GetContactInformation(ContactInformationType.Photo) as System.IO.Stream

虽然您可以读取流,但您无法写入它,因为此时您正在查看来自 AD 的联系信息。

感觉就像您想写一些东西来更改 AD 的 photoThumbnails 属性中的照片,而不是在 Lync 中。

于 2013-10-16T18:26:04.700 回答
0

2013 年 12 月 11 日更新

最新的 Lync 更新(Lync 客户端 CU3(11 月更新))可以选择设置添加回 GUI 的照片。

可以在此处找到带有解释和屏幕截图的文章:Lync 客户端 CU3(11 月更新)– 显示来自网站的图片!.


原始答案

虽然这是一个不同的问题,但我对这个问题(显示应用程序端点的照片)的回答在这里也是有效的:

基本上,有一个选项可以将用户的照片设置为 URL,但它不再显示在 Lync 2013 客户端界面中(它在 Lync 2010 客户端中存在)。如果您可以获取将图像发布到 Web 可访问位置的代码,则可以将 URL 发布到它并以这种方式更改您的用户图片。

作为参考,另一个问题的答案:


发布状态信息(包括照片设置)在LocalEndpoint.LocalOwnerPresence. 两者UserEndpointApplicationEndpoint来自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,“Presentity information”。

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);

真的应该这样做。我最终明确地发布到所有关系级别,因为它没有按逻辑预期级联数据。

于 2013-10-23T15:35:49.660 回答