【问题标题】:Multiple Immutable Id's for same mail message?同一邮件消息的多个不可变 ID?
【发布时间】:2020-02-04 08:52:36
【问题描述】:

我正在编写一个具有 React 前端和 dotnet 核心后端的 Office Outlook 加载项。我已使用 Graph API 设置订阅,以便在 SentItems 文件夹中出现新电子邮件时接收通知。我想将通知中的电子邮件与我存储在数据库中的信息相关联。

不幸的是,当电子邮件发送并从草稿文件夹移动到 SentItems 时,项目 ID 会发生变化,因此它对匹配没有用处。

当电子邮件在文件夹之间移动时,新的 ImmutableId 不会改变。我一直无法让 Office.js 库生成一个 ImmutableId,但是有一个 translateExchangeIds 方法,当给定电子邮件项目 ID 时将返回一个不可变 ID。

// convert to immutable
var translateRequest = new {
    inputIds = new string [] { mailMessage.ItemId },
    targetIdType = "restImmutableEntryId",
    sourceIdType = "restId"
};
var immutableResponse = await graphClient.PostAsJsonAsync("me/translateExchangeIds", translateRequest);
var immutableId = await immutableResponse.Content.ReadAsStringAsync();

我可以使用该不可变 id 来通过 Graph 请求检索电子邮件:

await graphClient.GetAsync($"Users/cccccccc-dddd-eeee-ffff-ba0c52e56d99/Messages/AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ-irLc2NFESKcGAhz1k_GBBDB5JMOwAA/

但是订阅通知返回的不可变 id 是同一消息的不同不可变 id。因此,无法将通知邮件消息与存储在我的数据库中的消息信息相匹配。因此,我仍然必须将自定义属性附加到消息中,以便将数据库条目与 SentItems 通知匹配。

有没有更好的方法来处理这个问题?

更新:我的理论是因为不可变 id 是在项目位于不同文件夹中时派生的?将项目 ID 转换为不可变 ID 时,项目仍位于草稿文件夹中。发生订阅通知时,该项目位于“已发送项目”文件夹中。以下响应来自使用不同不可变 ID 但标识相同消息的查询 - myId GUID 是附加到消息的自定义属性,用于将通知与存储在本地数据库中的消息信息相关联。

\"id\":\"AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ-irLc2NFESKcGAhz1k_GAADB4INPAAA\",...,\"myId\":\"8baa904f-cf64-437c-878c-be4f71714aee\"

\"id\":\"AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ-irLc2NFESKcGAhz1k_GAADB4INLwAA\",...,\"myId\":\"8baa904f-cf64-437c-878c-be4f71714aee\"

【问题讨论】:

  • 您能否分享您收到的作为通知的一部分的 ID?您是否使用 translateExchangeIds api 进行相同的转换?
  • @Sivaprakash 查看更新

标签: microsoft-graph-api outlook-addin office-js office-addins outlook-web-addins


【解决方案1】:

我们已解决此问题,现在您应该会看到草稿和已发送消息的相同 ImmutableId。您能否尝试让我们知道这是否按预期工作?

【讨论】:

  • 但是两个不可变的 id 都指向同一个消息,对吗?我可以使用任何一个不可变的 id 来使用 Graph API 检索消息。
  • 不,消息是不同的。
  • 那么您是否建议从草稿 id 翻译的不可变 id 指向与订阅通知中的不可变 id 不同但相同的消息?
猜你喜欢
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 2023-03-20
  • 2018-11-05
  • 1970-01-01
相关资源
最近更新 更多