Неавторизованная ошибка с токеном доступа, сгенерированным из Outlook WebAddin - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь использовать токен доступа, сгенерированный в Outlook Addin, для загрузки почтовых вложений, он выдает неавторизованную ошибку (401).Выглядит AccessToken недействительным.Использование accessToken в течение 5 минут после генерации в надстройке, чтобы избежать использования кода с истекшим сроком действия.

Выполните шаги, предложенные в Документация Office , и создайте код C #.Суть моего кода доступна здесь : https://gist.github.com/rajeevprasanna/6b0ba1db1599500a94451958b4f52d79

Мой манифест надстройки доступен здесь , который запрашивает ReadWriteMailbox разрешение: https://gist.github.com/rajeevprasanna/5ef93e3df80f304826742bb81a0b4421#file-addin-manifest-xml-L64

Я экспериментирую с Office365 Outlook WebClient, но мне нужно работать над единым решением, которое работает на всех экземплярах Outlook и версиях Office365 и Exchange.

Код для извлечения токена доступа, как предлагается здесь :

let cb = (asyncResult) => {
    console.log('asyncResult => '+ R.toString(asyncResult));
};

var options = {
        isRest: true,
        asyncContext: { message: 'Hello World!' }
    };
Office.context.mailbox.getCallbackTokenAsync(options, cb);

Использование значения, указанного в ответе обратного вызова, в качестве accessToken при выполнении вызова API.Пример ответа getCallbackTokenAsync:

{
    "asyncContext": {
        "message": "Hello World!"
    },
    "status": "succeeded",
    "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImthME5Hb19aNUkwRms1MXpKblZjT2tHbzFvbyJ9.eyJzbXRwIjoic3JpbmlAeGVub3Z1cy1hbWVyaWNhbmEuY29tIiwidmVyIjoiRXhjaGFuZ2UuQ2FsbGJhY2suVjIiLCJhcHBpZCI6IjAwMDAwMDAyLTAwMDAtMGZmMS1jZTAwLTAwMDAwMDAwMDAwMCIsImRlcGxveW1lbnRpZCI6IiIsInRpZCI6Imhvc3RpbmdjbG91ZGFwcC5uZXQiLCJhY3IiOiIxIiwiYXBwaWRhY3IiOiIwIiwic2NwIjoiTWFpbC5SZWFkV3JpdGUgTWFpbC5TZW5kIENhbGVuZGFycy5SZWFkV3JpdGUgQ29udGFjdHMuUmVhZFdyaXRlIiwiaXNzIjoiMDAwMDAwMDItMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwiYXVkIjoiaHR0cHM6Ly93ZWJtYWlsLmhvc3RpbmdjbG91ZGFwcC5jb20iLCJleHAiOjE1NDI4NzcwMDMsIm5iZiI6MTU0Mjg3NjEwM30.c3sknGGbw1Jrip9Ke1AcLyRL-6VnWSSWTGrwmeo6Z7xwBfKD3ppNkSqb4cVZIzuV-8udQps2abQ9scPMn0DNRbFRUNlBfkhHUqR2_JHrMcMptL6ZqF-a7_-gOMcBSgNdUCk5mhGDJs9qiEiM47thv5HZC97k-aYZ-iyU8N-8SgMNDc8vjBdS2nPSKp6FgQfezmjxADT-mbflxNUIwUDfOAys2l8v_Qw30t3LDca2AMmHyK3GbEaXejdO4muzC-ZrRMUVThIfFsMs0x67E2aY--lxSwDmrfcEnXODW0_J72RtFNDV5wjxf1QH6-xfP0A34qbUlmVnjjiCeYCeCCtNEg"
}

Пройдя некоторые трейлы и сравнив их с примером project , я обнаружил, что ошибка, похоже, имеет тип разрешения ReadWriteMailbox .Я могу получить вложения, если запрос выполняется с типом разрешения ReadItem или ReadWriteItem

...