MS Outlook加载项saveAsync方法返回错误的ID

时间:2018-09-24 12:06:40

标签: microsoft-graph outlook-addin office-js

我正在尝试使用office-js编写Outlook加载项,这涉及保存电子邮件,然后再使用MS Graph API发送。

为此,我有saveAsync方法here,该方法应将当前打开的电子邮件另存为草稿,并返回其ID。然后,我应该可以通过调用POST /me/messages/{id}/send

的Graph API发送此消息

但是,我发现saveAsync返回的ID与草稿文件夹中实际存在的ID略有不同。

例如,我最近一次使用save Async的尝试给了我

AAMkAGE4ZWVlNjI1LTk3NjAtNDFmYy1hZDhkLTU3ZWY0ZjJiMDk5YgBGAAAAAACghEgqiSFAQo8v+Kh2
wPqEBwDoiTH7R3zxTZ+n2OMFzElyAAAAAAEPAADoiTH7R3zxTZ+n2OMFzElyAAAT/OksAAA=

但是在Graph资源管理器中检查时,该ID实际上是:

AAMkAGE4ZWVlNjI1LTk3NjAtNDFmYy1hZDhkLTU3ZWY0ZjJiMDk5YgBGAAAAAACghEgqiSFAQo8v_Kh2
wPqEBwDoiTH7R3zxTZ_n2OMFzElyAAAAAAEPAADoiTH7R3zxTZ_n2OMFzElyAAAT-OksAAA=

有人知道我该如何解决saveAsync方法,以便它提供正确的消息ID?

2 个答案:

答案 0 :(得分:1)

通过EWS或通过itemId属性检索的

项目ID使用的格式与REST API使用的格式不同(例如Outlook Mail APIMicrosoft Graph)。 convertToRestId方法将EWS格式的ID转换为REST的正确格式。

您必须Converts an item ID formatted for EWS into REST format

答案 1 :(得分:0)

最后,事实证明,清除草稿文件夹中的缓存终于可以了! (尽管我不确定为什么)

可以使用saveAsync返回的ID来查询REST API。 Office.mailbox.item.id方法是一种需要转换的方法-saveAsync方法旨在允许您使用REST发送电子邮件。

感谢帮助人员! :)