Я создал надстройку для Outlook с ReactJS и следовал этому руководству, чтобы получить токен, позволяющий использовать API REST Outlook v2.0: https://docs.microsoft.com/en-us/office/dev/add-ins/outlook/use-rest-api
Теперь я хотел бы начать использовать Outlook Beta REST API и решил, что могу использовать тот же токен для выполнения вызовов API, однако я получаю следующую ошибку, которая говорит о том, что я не могу использовать этот токен:
{"error":{"code":"UnableToReadToken","message":"OAuth token submitted with the request can not be parsed.","innerError":{"requestId":"b96fc800-82d4-4b6d-8aa0-0b9ff6a36873","date":"2020-02-21T09:27:27"}}}
Есть ли способ вызвать этот API с помощью токена, сгенерированного Office.context.mailbox.getCallbackTokenAsync
? Мне известно, что я, вероятно, могу получить токен oauth2 через Azure AD, однако на портале Azure AD у меня нет необходимого административного доступа для выполнения этого процесса, поэтому я ищу решение, которое не полагается на это. ,
Вот фрагмент кода моих функций для получения токена и вызова API:
getToken() {
return new Promise(async function (resolve, reject) {
try {
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
if (result.status === "succeeded") {
let accessToken = result.value;
console.log(result.value);
resolve(accessToken);
} else {
console.log(result.status);
reject(result.status);
}
});
} catch (error) {
console.error(error);
reject(error);
}
})
}
getRules(token) {
return new Promise(async function (resolve, reject) {
try {
const url = 'https://outlook.office.com/api/beta/me/mailfolders/inbox/messagerules';
const header = new Headers({ 'Authorization': `Bearer ${token}` });
const options = {
headers: header
};
let response = await fetch(url, options);
let jsonResponse = await response.json();
console.log(jsonResponse);
resolve(jsonResponse);
} catch (error) {
console.error(error);
reject(error);
}
});
}