Microsoft graph api 多个不可变Id';是同一封邮件吗?

Microsoft graph api 多个不可变Id';是同一封邮件吗?,microsoft-graph-api,outlook-addin,office-js,office-addins,outlook-web-addins,Microsoft Graph Api,Outlook Addin,Office Js,Office Addins,Outlook Web Addins,我正在编写一个Office Outlook加载项,它有一个React前端和一个dotnet core后端。我已经使用Graph API设置了订阅,以便在SentItems文件夹中出现新电子邮件时接收通知。我想将通知中的电子邮件与我存储在数据库中的信息关联起来 \"id\":\"AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ-irLc2NFESKcGAhz1k_GAADB4INPAAA\",...,\"myId\":\"8baa904f-cf64-437c-878c-b

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

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

\"id\":\"AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ-irLc2NFESKcGAhz1k_GAADB4INLwAA\",...,\"myId\":\"8baa904f-cf64-437c-878c-be4f71714aee\"
不幸的是,当发送电子邮件并将其从草稿文件夹移动到SentItems时,项目id会发生变化,因此它对匹配没有帮助

当电子邮件在文件夹之间移动时,有一个新的不可变ID不会更改。我无法让Office.js lib生成不可变id,但有一种方法,当给定电子邮件项目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\"

我们已经解决了这个问题,现在您应该可以看到草稿和已发送邮件的相同ImmutableId。您能否尝试让我们知道这是否按预期工作?

我们已修复此问题,现在您应该可以看到草稿和已发送邮件的相同不可变ID。您是否可以尝试让我们知道这是否按预期工作?

您是否可以将收到的id作为通知的一部分进行共享?是否使用translateExchangeIds api转换相同的id?@Sivaprakash请参阅更新能否共享作为通知一部分收到的id?是否使用translateExchangeIds api转换相同的id?@Sivaprakash请参阅更新,但两个不可变id引用相同的消息,对吗?我可以使用任意一个不可变id使用Graph API检索消息。不,消息是不同的。因此,您是否建议草稿id中的转换后的不可变id指向订阅通知中的不可变id的不同但相同的消息?但这两个不可变id都引用相同的消息,对吗?我可以使用任意一个不可变id来使用Graph API检索消息。不,消息是不同的。因此,您是否建议草稿id中转换的不可变id指向订阅通知中不可变id的不同但相同的消息?