У нас есть надстройка для Outlook, для которой нам нужно обновить свойство Single-Value-extended-Mail почтового элемента, используя его itemId.
Документация для обновления свойства расширения : Здесь
Мы получили следующий ответ на HTTP-вызов:
URL запроса:
PATCH https://outlook.office365.com/api/v2.0/me/messages('{mailItemId}')
Ответ:
{
"error": {
"code": "ErrorAccessDenied",
"message": "The api you are trying to access does not support item scoped OAuth."
}
}
При дальнейшей настройке мы обнаружили, что может быть проблема с токеном аутентификации, который мы используем в заголовках запроса.Для извлечения токена мы используем API getCallbackTokenAsync
в Outlook, для опции isRest
установлено значение true для токена REST.При поиске в переполнении стека соответствующих проблем я нашел следующие вопросы:
- Невозможно добавить вложение в сообщение в надстройке Outlook с помощью Outlook rest API
- Доступ к Outlook RestAPI из веб-надстройки Outlook
Это говорит о том, что в этом API может быть ошибка, из-за которой онвозвращает маркер области элемента вместо почтового ящика.Полезная нагрузка токена области действия содержит Exchange.Callback.V1
в качестве значения версии и Exchange.Callback.V2
для почтового ящика области.
Мы расшифровали наш токен ответа на https://jwt.io/ и обнаружили, что токенвозвращенный был действительно элемент с ограниченным объемом, и поэтому мы заблокированы при отправке обновленного значения extended-property в почтовый элемент.Также было написано, что эта проблема может быть решена в сборках после 16.0.7902.1000.Я пытаюсь сделать это на клиенте веб-браузера для Outlook, но не уверен, насколько версия сборки уместна в моем случае.
Кто-нибудь еще сталкивался с таким поведением в последнее время, или есть ли возможный обходной путь длявопрос?
************** РЕДАКТИРОВАТЬ ****************
Iпоследовал предложению в комментарии, и теперь я могу выполнить запрос на исправление от почтальона, но не из надстройки.Я получаю 400 неверных запросов в консоли.Ниже приведена версия ответа с определенным именем ключа и удаленным URL.
{
"_body": {
"error":{
"code":"RequestBodyRead",
"message":"An unexpected instance annotation name '{key name}' was found
when reading from the JSON reader, In OData, Instance
annotation name must start with @."
}
},
"status": 400,
"ok": false,
"statusText": "Bad Request",
"type": 2
}
Как я могу решить эту проблему?