Может токен, возвращенный из mailbox.getCallbackTokenAsync, выполнить действие записи для почтового элемента - PullRequest
0 голосов
/ 03 ноября 2018

Из этого документа мы можем использовать getCallbackTokenAsync для получения токена, с помощью которого мы можем использовать его для вызова веб-служб Exchange в сторонней системе. Цитата «Получает строку, содержащую токен, используемый для получения вложения или элемента с сервера Exchange». Он не устанавливает каких-либо ограничений для разрешения на запись.

Затем, в соответствии с этим документом , если мы изменим разрешение надстройки на ReadWriteMailbox, мы можем «читать и записывать все свойства любого элемента в почтовом ящике пользователя».

В моей надстройке у меня установлен уровень разрешений ReadWriteMailbox, и я использую токен, полученный из getCallbackTokenAsync, для аутентификации exchange service. Но когда я попытался записать пользовательские свойства на сервер Exchange, я получил эту ошибку Microsoft.Exchange.WebServices.Data.ServiceResponseException: 'The requested web method is unavailable to this caller or application.'

Мой код

exchangeService.Credentials = new OAuthCredentials({accesstoken returned by mailbox.getCallbackTokenAsync});
Guid PS_PUBLIC_STRINGS = new Guid("00020329-0000-0000-C000-000000000046");
ExtendedPropertyDefinition extendedPropertyDefinition = new ExtendedPropertyDefinition(PS_PUBLIC_STRINGS, "cecp-a8e14732-37cf-4a46-b69f-2539f4059948", MapiPropertyType.String);
var obj = new
{
 customProp: "cp"
 };
Email.SetExtendedProperty(extendedPropertyDefinition, JsonConvert.SerializeObject(obj));
Email.Update(ConflictResolutionMode.AlwaysOverwrite); //this erros occurs here

1 Ответ

0 голосов
/ 22 ноября 2018

Маркер, предоставленный getCallbackTokenAsync, может использоваться только для методов, описанных здесь: https://docs.microsoft.com/en-us/outlook/add-ins/web-services

Вы можете обратиться по этой ссылке, чтобы найти способы аутентификации в EWS напрямую: https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/authentication-and-ews-in-exchange

Обновление пользовательских свойств напрямую через EWS не рекомендуется, и для этой цели следует использовать только приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...