Office.js Outlook加载项InternetHeaders首选ImmutableId

问题描述 投票:0回答:1

我正在开发Outlook加载项(与dotnet核心后端进行交互)。我想利用邮件的不变ID。 This page

更新(2019年1月15日):此功能现在可以在Microsoft Graph v1.0和Beta中作为“选择加入”使用。默认情况下,图表将继续返回常规ID。

因此,为了访问此功能,我需要在API请求中发送HTTP标头:

Prefer: IdType="ImmutableId"

有一个可以做到这一点的API:

Office.context.mailbox.item.internetHeaders.setAsync({"Prefer": "IdType=\"ImmutableId\""});

在用于编写消息的React组件中,请求在componentDidMount()方法中成功,但不会生成ImmutableId [已编辑-setAsync()方法仅可用于编写消息]。在编写问题的过程中,我在setAsync()上找到了答案:

您需要采取一些其他步骤来完成更新。在外接程序HTML页面的head标签中,注释掉或删除任何现有的office.js脚本引用,并按如下所示引用更新的Office库JavaScript API:

this page

CDN URL中office.js中的/ 1 /指定使用Office.js版本1中的最新增量版本。

我已经用更新的脚本引用更新了<script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script> 文件,但是请求仍然失败-即使在成功设置标头的情况下,ID也不是不可变的,itemId只是标准的易失性ID,当项在文件夹之间移动。是否有一个示例演示了此功能的成功使用?

office-js office-addins outlook-web-addins
1个回答
0
投票

第一个文档描述了在调用Microsoft Graph或Exchange REST API时要设置的HTML标头。根据您使用id的方式,这对您以后可能很重要。

要获取Outlook项目的不变ID:

  1. taskpane.html获取EWS项目ID
  2. Office.context.mailbox.item.itemId REST API进行远程服务调用,以将REST ID交换为不可变的ID

这是如何从Outlook加载项中调用REST API的不完整示例。它缺少访问令牌,因为translateExchangeIds REST API需要translateExchangeIds权限,这不是getClientAccessToken API返回的令牌的范围。这个简短的示例基于translateExchangeIds文章,其中包含有关发出类似此请求的更多信息。

User.ReadBasic

您还可以在Outlook加载项making REST API calls from an Outlook add-in上为客户端不可变id API创建功能请求。在我们进行计划过程时,会考虑对UserVoice的功能请求。

© www.soinside.com 2019 - 2024. All rights reserved.