【问题标题】:How to have Outlook web add-in access REST API Token on Outlook 2016如何让 Outlook Web 加载项访问 Outlook 2016 上的 REST API 令牌
【发布时间】:2020-07-15 16:50:57
【问题描述】:

我的 Outlook Web 加载项使用 Office.context.mailbox.getCallbackTokenAsync 方法在选项中传递“isRest = true”。这是为了获得一个授权令牌,我可以使用它来向 Outlook REST API 发出请求。这适用于 Outlook 2019、OWA 和 Office 365 Windows 桌面客户端,但不适用于 Outlook 2016。尝试对 REST API 使用检索到的令牌会返回 403 状态。

加载项 API 的要求集表明 Windows Outlook 2016 仅支持最高版本 1.4(请参阅here),并且仅在要求集 1.5 中添加了对 getCallBackTokenAsync 方法中的“isRest=true”的支持.

鉴于 Outlook 2016 的此限制,是否有任何其他方式可以在 Outlook 2016 上的 Web 插件中以静默方式(如没有用户通过弹出窗口等进行交互)获取 Outlook REST API 令牌?

需要可联系的 REST API 端点是“/v2.0/me/”。

请注意,目标后端是 Exchange 2016 本地解决方案,因此据我所知无法与 Azure 集成。

已经考虑的潜在选择

  • 在 Outlook 2016 上调用 getCallBackTokenAsync 并传递 isRest 看起来会返回一个 EWS 令牌 - Exchange.Callback.V1。但是我不能使用它,因为加载项正在将检索到的令牌传递给发出 REST API 请求的服务器,并且该服务器无法更改为也支持 EWS 令牌,而无需比我可以修改加载项更长的周转时间代码。
  • 我查看了从outlook-win32-16.02.js 获取相关的 isRest 代码来自己拨打电话。我已经对 window.external 执行了令牌调用,但是虽然这适用于 Outlook 365,但它无法在 Outlook 2016 上成功返回,所以我假设底层客户端不支持该操作而不仅仅是办公室。 js 库没有暴露。
window.external.Execute(12, [JSON.stringify({"isRest" : true, "itemNumber": "1"})], function(result){console.log('Result is: ' + JSON.stringify(result));});
  • 考虑覆盖由 getCallbackToken 调用对 EWS 令牌发出的对服务器的请求,并将 XML 正文修改为 REST 令牌检索等效项,但覆盖 XMLHttpRequest.send 仅对 OWA 产生影响。这似乎没有在 Outlook 桌面客户端中用于发出 EWS 调用以检索令牌。
  • 目前我正在查看是否可以手动对 Exchange 服务器进行 GetClientAccessToken 调用(office.js makeEwsRequestAsync 方法不支持此调用),但是我看不到获得有效身份验证的方法请求的标头以及需要在请求正文中传递的 Id 和 ParentItemId 属性。来自 getCallbackToken 的 EWS 令牌无权执行 GetClientAccessToken 调用。

【问题讨论】:

    标签: outlook office-js office-addins outlook-web-addins


    【解决方案1】:

    目前不支持在 Outlook 2016 中检索 REST 令牌。

    另一种方法是使用 oauth。外接程序开发人员可以注册一个 appId 并让外接程序用户通过一次性同意流程进行身份验证。关于如何使用 oauth 的文档可以在 here 找到。

    【讨论】:

    • @Outlook-Add-ins-Team-MSFT 这将涉及每个用户第一次使用加载项时出现的弹出窗口是吗?不幸的是,目标是验证过程没有用户交互。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多