【问题标题】:Cannot fetch room notes through EWS API无法通过 EWS API 获取房间备注
【发布时间】:2015-08-11 13:44:59
【问题描述】:

我想获取带有 EWS API 的房间的字段 Notes

此字段存在于 Outlook 中,但我找不到使用 API 获取它的方法。

到目前为止,我已经尝试通过以下方式获取它:

NameResolutionCollection nameResolutions = service.resolveName(room.getName(), ResolveNameSearchLocation.DirectoryThenContacts, true);

但返回的联系人中不存在Notes 字段。

我也试过用

来获取它
Contact roomContact = Contact.bind(service, new ItemId(room.getId()), new PropertySet(BasePropertySet.FirstClassProperties, ContactSchema.Body));
// roomContact.getBody().toString() should contains the 'Notes' field

但是,房间没有任何ItemId:room.getId()返回null

最后,我尝试使用nameResolution.getContact().load(new PropertySet(ItemSchema.Body)) 加载属性,这次我遇到了异常InvalidOperationException: This operation can't be performed because this service object doesn't have an Id

您知道如何获取房间的Notes 字段吗?我可能还对查找房间 ID 的方法感兴趣。

【问题讨论】:

  • 这是一个非常开放的问题,格式不正确
  • 您的评论是否为问题增加了任何价值或为改进问题提供了帮助?

标签: office365 exchangewebservices ews-managed-api


【解决方案1】:

您需要使用 ResolveName 中的 PropertySet Overload 来指定您希望 ResolveName 返回的所有属性(如果启用,这也将返回 Userphoto)例如

        PropertySet AllProps = new PropertySet(BasePropertySet.FirstClassProperties);
        NameResolutionCollection ncCol = service.ResolveName("User@domain.com", ResolveNameSearchLocation.DirectoryOnly, true, AllProps);
        foreach (NameResolution nr in ncCol)
        {
            Console.WriteLine(nr.Contact.Notes);
        }

您不能对从 GAL 返回的联系人进行加载,因为这不是 Exchange 存储对象(例如,它没有 EWSId)。

干杯 格伦

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2013-04-16
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多