Я пытаюсь создать службу node.js для доступа к календарю моего пользователя и отправки приглашений другим через API MS Graph.
Поэтому я следовал этому руководству: https://docs.microsoft.com/en-us/graph/auth-v2-service
const endpoint = "https://login.microsoftonline.com/[tenant]/oauth2/token";
const requestParams = {
grant_type: "client_credentials",
client_id: "[appid]",
scope: 'https://graph.microsoft.com/.default',
client_secret: "[password/secret]"
};
request.post({ url:endpoint, form: requestParams }, function (err, response, body) {
if (err) {
console.info("error");
}
else {
//console.info("Body = " + body);
let parsedBody = JSON.parse(body);
if (parsedBody.error_description) {
console.info("Error = " + parsedBody.error_description);
}
else {
console.info("Access Token = " + parsedBody.access_token);
requestData(parsedBody.access_token)
}
}
});
function requestData(accessToken) {
request.get({
url: "https://graph.microsoft.com/v1.0/me/calendars",
headers: {
"Authorization": "Bearer " + accessToken
}
}, function(err, response, body) {
console.info(body);
});
}
Я могу успешно получить токен доступа, но когда я пытаюсь запросить любой из API-интерфейсов Graph, я получаю сообщение об ошибке:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Access token validation failure.",
"innerError": {
"request-id": "..",
"date": "2019-02-17T09:44:09"
}
}
}
Любые подсказки, что я мог сделать неправильно?





Вы можете получить эту ошибку, так как в своем коде вы пытаетесь получить токен доступа, отправив запрос токена на конечную точку /[tenant]/oauth2/token. В соответствии с документацией, которой вы следуете, вам необходимо отправить запрос на доступ к конечной точке V2, которая называется /[tenant]/oauth2/v2.0/token.