繁体   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