Мне удалось получить access_token через API oauth2,
Но затем, когда я пытаюсь получить доступ к событиям, я получаю следующую ошибку:
statusCode: 400, код: «BadRequest», сообщение: «Текущий аутентифицированный контекст недопустим для этого… Неявный поток OAuth 2.0 для одностраничных веб-приложений».
Я создал компонент Vue, и эта функция возвращает токен:
getToken: function() {
var self = this;
var params = new URLSearchParams();
params.append('client_id', self.client_id);
params.append('client_secret', self.client_secret);
params.append('grant_type', self.tokenSettings.grant_type);
params.append('resource', self.tokenSettings.resource);
var url = self.tokenSettings.url;
axios.post(url,
params, {
withCredentials: false
})
.then(function(response) {
self.access_token = response.data.access_token;
self.token_type = response.data.token_type;
self.expires_in = response.data.expires_in * 1000;
self.isAuthenticated = true;
self.getEvents();
window.setInterval(function() {
self.getToken();
}.bind(self), response.data.expires_in * 1000);
})
.catch(function(error) {
self.isAuthenticated = false;
});
}
И ниже функция, с которой я пытаюсь получить события, но возвращает ошибку выше:
getEvents: function() {
var self = this;
var apiUrl = '/me/events';
if (self.access_token) {
// Create a Graph client
var client = MicrosoftGraph.Client.init({
authProvider: (done) => {
// Just return the token
done(null, self.access_token);
}
});
client
.api(apiUrl)
.select('*')
.orderby('createdDateTime DESC')
.get((err, res) => {
console.log('res', res);
if (err) {
console.log('error:', err);
self.isAuthenticated = false;
} else {
self.events = res.value;
}
});
} else {
self.isAuthenticated = false;
}
}