簡體   English   中英

從 Outlook 加載項使用 Outlook REST API Beta

[英]Using Outlook REST API Beta From an Outlook add-in

我已經使用 ReactJS 創建了一個 Outlook 插件,並按照本指南獲取了能夠使用 Outlook v2.0 REST API 的令牌: https : //docs.microsoft.com/en-us/office/dev/add -ins/outlook/use-rest-api

現在我想開始使用 Outlook Beta REST API,我想我可以使用相同的令牌來進行 API 調用,但是我收到以下錯誤,表明我無法使用此令牌:

{"error":{"code":"UnableToReadToken","message":"OAuth token submitted with the request can not be parsed.","innerError":{"requestId":"b96fc800-82d4-4b6d-8aa0-0b9ff6a36873","date":"2020-02-21T09:27:27"}}}

無論如何,是否可以使用Office.context.mailbox.getCallbackTokenAsync生成的令牌來調用此 API? 我知道我可能可以通過 Azure AD 獲得 oauth2 令牌,但是在 Azure AD 門戶中,我沒有正確的管理員訪問權限來執行此過程,因此我正在尋找不依賴於此的解決方案。

這是我獲取令牌和調用 API 的函數的代碼片段:

getToken() {
    return new Promise(async function (resolve, reject) {
      try {
        Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
          if (result.status === "succeeded") {
            let accessToken = result.value;
            console.log(result.value);
            resolve(accessToken);
          } else {
            console.log(result.status);
            reject(result.status);
          }
        });
      } catch (error) {
        console.error(error);
        reject(error);
      }
    })
  }



getRules(token) {
    return new Promise(async function (resolve, reject) {
      try {
        const url = 'https://outlook.office.com/api/beta/me/mailfolders/inbox/messagerules';
        const header = new Headers({ 'Authorization': `Bearer ${token}` });
        const options = {
          headers: header
        };
        let response = await fetch(url, options);
        let jsonResponse = await response.json();
        console.log(jsonResponse);
        resolve(jsonResponse);
      } catch (error) {
        console.error(error);
        reject(error);
      }
    });
  }

您提到沒有適當的管理員訪問權限來使用 AD v2 身份驗證端點。

目前有兩種方法來處理應用程序注冊和用戶授權。 您是否確認過,如果這些方法中的一種可能仍然有效......

使用 Azure AD v2 身份驗證端點: https : //docs.microsoft.com/en-us/previous-versions/office/office-365-api/api/beta/use-outlook-rest-api-beta#RegAuthConverged

使用 Azure Active Directory 和 OAuth: https : //docs.microsoft.com/en-us/previous-versions/office/office-365-api/api/beta/use-outlook-rest-api-beta#RegAuthAzure

...

一些附加信息(您可能已經知道):

對於 Outlook 和 Outlook.com 開發人員,v2 身份驗證終結點已從預覽提升到普遍可用 (GA) 狀態。

如果你有一個使用 Windows Live API 訪問 Outlook.com 郵箱數據的生產應用程序,則必須重寫該應用程序以使用 v2 身份驗證終結點和 Outlook REST API。 由於 Outlook.com 不推薦使用 Windows Live API,並且 Outlook.com 用戶為其郵箱啟用了 Outlook REST API,因此這些用戶在嘗試運行此類 Windows Live API 應用程序時將收到 HTTP 404 錯誤。

在此處閱讀更多信息: https : //docs.microsoft.com/en-us/previous-versions/office/office-365-api/api/beta/use-outlook-rest-api-beta

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM