无法通过EWS API获取会议室备注

时间:2015-08-11 13:44:59

标签: office365 exchangewebservices ews-managed-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()返回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的方法。

1 个答案:

答案 0 :(得分:1)

您需要使用ResolveName中的PropertySet重载来指定您希望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)。

干杯 格伦