Получение событий календаря с помощью microsoft-graph-client - PullRequest
0 голосов
/ 24 августа 2018

Мне удалось получить 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;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...