我可以通过在 header 中添加 `Prefer: IdType="ImmutableId" 来在 office.js 中设置不可变的标识符吗?

Can I set identifiers immutable in office.js by adding `Prefer: IdType="ImmutableId" `in header?

问题

在 office.js 中,标识符是可变的。如果电子邮件更改其位置(从草稿到已发送 e.tc),它们总是会改变。我想为我的 add-in 标识符使用不可变的.

图中api

在 graph.api 中,您可以使用不可变标识符 link 让它们“工作”需要添加 header 到 REST 调用(header 是 Prefer: IdType="ImmutableId" )

所以问题是

我可以将 header(Prefer: IdType="ImmutableId") 设置为 office.js 吗?使用 Office.InternetHeaders.setAsync() 方法使标识符不可变吗?

没有。 internetHeaders.SetAsync()。用于设置外发邮件的internetHeaders。

您引用的添加 Prefer: IdType="ImmutableId" 的说明在您进行 REST 调用时引用 headers,与 office.js api 无关。

不可变 ID 不适用于任何 office.js API。唯一可用的 itemID 是来自 Office.context.mailbox.item.itemId 的 EWSId。但是,如您所述,如果项目切换文件夹,EWSId 将会更改。

您可以使用 Graph/REST 将 EWSId 转换为不可变的:https://docs.microsoft.com/en-us/graph/api/user-translateexchangeids?view=graph-rest-1.0&tabs=http

但是 Office.js inputs/outputs 在函数中总是 EWSId。