【发布时间】:2019-10-04 01:33:29
【问题描述】:
我正在开发 Outlook 加载项(使用 dotnet 核心后端进行反应)。我想利用邮件消息的不可变 ID。 This page 说
更新(2019 年 1 月 15 日):此功能现已在 Microsoft Graph v1.0 和测试版中作为“选择加入”提供。默认情况下,Graph 将继续返回常规 ID。
因此,为了访问此功能,我需要在 API 请求中发送 HTTP 标头:
Prefer: IdType="ImmutableId"
有一个 API 可以做到这一点:
Office.context.mailbox.item.internetHeaders.setAsync({"Prefer": "IdType=\"ImmutableId\""});
在用于撰写消息的 React 组件中,在 componentDidMount() 方法中请求成功,但不会生成 ImmutableId [已编辑 - setAsync() 方法仅可用于撰写消息]。在写问题的过程中,我在this page找到了答案:
您需要采取一些额外的步骤才能完成更新。在加载项 HTML 页面的 head 标记中,注释掉或删除任何现有的 office.js 脚本引用,并引用更新后的 JavaScript API for Office 库,如下所示:
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
CDN URL 中 office.js 中的 /1/ 指定使用 Office.js 版本 1 中的最新增量版本。
我已经使用更新的脚本参考更新了taskpane.html 文件,但请求仍然失败 - id 永远不会不可变,即使标头设置成功,itemId 只是标准的 volatile id,当项目在文件夹之间移动。是否有成功使用此功能的示例?
【问题讨论】:
-
Office.context.mailbox.item.internetHeaders 用于处理电子邮件 MIME 标头。它与 REST ImmutableId 标头无关。当前 Outlook 加载项不支持不可变 ID。你的场景是什么?您是否主要对通过 Outlook 插件获取项目的不可变 ID 感兴趣?
-
是的,我正在尝试为 Outlook 加载项的邮件项获取不可变 ID。
标签: office-js office-addins outlook-web-addins