Ошибка метода PATCH Outlook REST API, возвращающего ErrorAccessDenied - PullRequest
0 голосов
/ 28 февраля 2019

У нас есть надстройка для 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.При поиске в переполнении стека соответствующих проблем я нашел следующие вопросы:

  1. Невозможно добавить вложение в сообщение в надстройке Outlook с помощью Outlook rest API
  2. Доступ к 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 
} 

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 01 марта 2019

Пожалуйста, ознакомьтесь с документом по API getCallbackTokenAsync: docs.microsoft.com/en-us/office/dev/add-ins/reference/….Вам необходимо указать разрешение ReadWriteMailbox в его манифесте.

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