Я разрабатываю надстройку для Outlook Web, используя Microsoft Graph REST API v1.0.После многих поисков включите документацию Microsoft и, наконец, сможете авторизоваться и получить «access_token» с помощью надстройки, но сильно застряли, чтобы получить «календарь» пользователя, а также «события календаря», включая повторяющиеся события с использованием приведенного ниже кода
//// for all calendar label
var _token="xyz..123";
$.ajax({
url: "https://graph.microsoft.com/v1.0/me/calendars",
headers: {
'outlook.body-content-type': 'text/html',
'Authorization': 'Bearer ' + token
},
type: 'GET'
}).done(function (data) {
//// success
}).fail(function (error) {
//// error
});
//// for calendar events
var _token="xyz..123";
$.ajax({
url: "https://graph.microsoft.com/v1.0/me/calendar/events",
headers: {
'outlook.body-content-type': 'text/html',
'Authorization': 'Bearer ' + token
},
type: 'GET'
}).done(function (data) {
//// success
}).fail(function (error) {
//// error
});
ref: https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list_events
Я получаю эту ошибку в ответ
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "CompactToken parsing failed with error code: 80049217",
"innerError": {
"request-id": "55ea48c0-5d10-423b-9f41-d48d5b1d9454",
"date": "2018-10-01T14:41:05"
}
}
}
Пожалуйста, укажите мне, где я делаю неправильно?Спасибо
ОБНОВЛЕНИЕ
По предложению @Lina я попробовал этот метод и переключился на Outlook REST API v2.0
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
if (result.status === "succeeded") {
var accessToken = result.value;
// Use the access token
} else {
// Handle the error
}
});
получил accessToken= "123..abc";После этого я попытался получить доступ к календарю и событиям таким образом
// get calendars
$.ajax({
url: 'https://outlook.office.com/api/v2.0/me/calendars' ,
dataType: 'json',
headers: { 'Authorization':'Bearer ' +access_token}
}).done(function (items) {
//sucess;
}).fail(function (error) {
//error
});
// get events
$.ajax({
url: 'https://outlook.office.com/api/v2.0/me/events' ,
dataType: 'json',
headers: { 'Authorization':'Bearer ' +access_token}
}).done(function (items) {
//sucess;
}).fail(function (error) {
//error
});
В вышеупомянутом запросе я получил эту ошибку
"{"error":{"code":"ErrorAccessDenied","message":"The api you are trying to access does not support item scoped OAuth."}}"
, связанную: Доступ к Outlook RestAPI изВеб-надстройка Outlook
Помогите мне, что мне не хватает.Есть ли какие-либо «разрешения» или «параметры»?Спасибо