Ошибка http 401 при предоставлении токена доступа Outlook API - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь создать папку для пользователя, но у меня не получилось выполнить попытки вызова API. Мой код может получить правильный токен доступа, поэтому я полагаю, что ошибка будет в createFolderTestFunction ниже.

enter image description here

async function redirectToDashboard() {
  console.log("redirect to dashboard");
  // var response = await requestTokenSilent();
  var response;
  if (!response || !response.status == 200) {
    response = await requestTokenPopup();
  }

  if (response.accessToken) {
    console.log(response);
    createFolderTest(response.accessToken);
    // location.href = hostname;
  } else {
    console.log("Unable to acquire token");
  }
}


function createFolderTest(accessToken) {
  var options = {
    method: "POST",
    headers: {
      Authorization: accessToken,
      "Content-Type": "application/json"
    },
    mode: "cors",
    body: JSON.stringify({
      displayName: "@COOLMONDAY"
    })
  };

  var graphEndpoint = "https://outlook.office.com/api/v2.0/me/Inbox/";

  fetch(graphEndpoint, options)
    .then(resp => {
      console.log(resp);
    })
    .catch(err => {
      console.log(err);
    });
} 

1 Ответ

0 голосов
/ 05 мая 2020

Рекомендую, чтобы это сначала работало в Graph Explorer. Поскольку это устраняет любые проблемы с используемым языком и доступом к токену.

https://developer.microsoft.com/en-us/graph/graph-explorer/preview

Конечная точка Microsoft Graph на самом деле https://graph.microsoft.com/, вы можете использовать URL-адрес outlook, но при движении вперед в Graph мы инвестировать в документацию, SDK и инструменты.

В соответствии с документацией https://docs.microsoft.com/en-us/graph/api/user-post-mailfolders?view=graph-rest-1.0&tabs=http

Вы должны использовать, вам не хватает «почтовых папок»

POST /me/mailFolders

Вы также можете использовать наш JavaScript SDK, который немного упрощает подобные ошибки с объектами со знаком и со строго типизированными объектами.

    const options = {
    authProvider,
};

const client = Client.init(options);

const mailFolder = {
  displayName: "displayName-value"
};

let res = await client.api('/me/mailFolders')
    .post(mailFolder);

https://docs.microsoft.com/en-us/graph/api/user-post-mailfolders?view=graph-rest-1.0&tabs=javascript

...