Я хочу получить идентификатор папки с заданным именем в заданной родительской папке с помощью службы FindFolder EWS SOAP через функцию Office JavaScript API Office.context.mailbox.makeEwsRequestAsync. Указанное ограничение игнорируется.
<?xml version = "1.0" encoding = "UTF-8"?>
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:m = "http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t = "http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version = "Exchange2013" />
</soap:Header>
<soap:Body>
<m:FindFolder Traversal = "Shallow">
<m:FolderShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI = "folder:DisplayName" />
</t:AdditionalProperties>
</m:FolderShape>
<t:Restriction>
<t:IsEqualTo>
<t:FieldURI FieldURI = "folder:DisplayName" />
<t:FieldURIOrConstant>
<t:Constant Value = "xyz" />
</t:FieldURIOrConstant>
</t:IsEqualTo>
</t:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id = "root" />
</m:ParentFolderIds>
</m:FindFolder>
</soap:Body>
</soap:Envelope>
Запрос выполнен успешно, но вместо того, чтобы получить в ответ не более одной папки, я получаю все папки в указанной родительской папке.
Я вызываю этот код из веб-надстройки Outlook, имеющей разрешения ReadWriteMailbox.
Также обратите внимание, что указанное ограничение в вызове службы FindItem SOAP также не работало для меня, пока запрос был успешным.
Может ли кто-нибудь указать мне в правильном направлении, пожалуйста?
Нет, не имел, потому что мне это было не нужно. API JavaScript для Office обеспечивает аутентификацию. Я буду читать об аутентификации для служб EWS SOAP вне надстройки, но что вы имеете в виду?





Ограничение связано с сообщениями, а не с типами, поэтому ваш запрос неверен (не уверен, почему он не выдает ошибку), но если вы используете
<?xml version = "1.0" encoding = "UTF-8"?>
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:m = "http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t = "http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version = "Exchange2013" />
</soap:Header>
<soap:Body>
<m:FindFolder Traversal = "Shallow">
<m:FolderShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI = "folder:DisplayName" />
</t:AdditionalProperties>
</m:FolderShape>
<m:Restriction>
<t:IsEqualTo>
<t:FieldURI FieldURI = "folder:DisplayName" />
<t:FieldURIOrConstant>
<t:Constant Value = "xyz" />
</t:FieldURIOrConstant>
</t:IsEqualTo>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id = "root" />
</m:ParentFolderIds>
</m:FindFolder>
</soap:Body>
</soap:Envelope>
это должно работать нормально
Согласно документации, Restriction принадлежит пространству имен Types. docs.microsoft.com/en-us/exchange/client-developer/… Но вы правы. Бесконечно благодарен.
Вы пытались сделать запрос EWS без надстройки? Вы получаете такие же результаты?