无法通过 EWS 获取房间笔记 API

Cannot fetch room notes through EWS API

我想为带有 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() returns 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 的方法感兴趣。

您需要在 ResolveName 中使用 PropertySet 重载来指定您想要由 ResolveName return 编辑的所有属性(如果启用,这也将 return 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 对联系人进行加载 return,因为这不是 Exchange 存储对象(例如,它没有 EWSId)。

干杯 格伦