Web services Microsoft日历图形API:用户之间未共享的事件Id

Web services Microsoft日历图形API:用户之间未共享的事件Id,web-services,outlook,office365,microsoft-graph-api,outlook-calendar,Web Services,Outlook,Office365,Microsoft Graph Api,Outlook Calendar,我目前正在使用Microsoft Calendar Graph API,在尝试同步事件时遇到了一些问题 基本上,我的web服务上有两个用户:他们都有Outlook地址。用户A在我的web服务上创建事件,并将用户B添加为与会者。然后使用RESTAPI将事件发送到Outlook。它是在用户A的Outlook日历上创建的,用户B在Outlook上收到邀请,并且该事件也在其Outlook日历中创建 现在,在我的web服务上,当创建事件时,我检索事件的Microsoft ID并将其存储在数据库中。这样,当

我目前正在使用Microsoft Calendar Graph API,在尝试同步事件时遇到了一些问题

基本上,我的web服务上有两个用户:他们都有Outlook地址。用户A在我的web服务上创建事件,并将用户B添加为与会者。然后使用RESTAPI将事件发送到Outlook。它是在用户A的Outlook日历上创建的,用户B在Outlook上收到邀请,并且该事件也在其Outlook日历中创建

现在,在我的web服务上,当创建事件时,我检索事件的Microsoft ID并将其存储在数据库中。这样,当我想在Outlook日历和我的日历之间同步事件时,我所做的就是检索所有Outlook事件,检查它们的ID,并查看它们是否存储在我的数据库中:如果是,则事件已存在于我的web服务上,如果不是,则我在我的web服务中创建事件

我遇到的问题是,当我尝试从用户B获取Outlook事件时,事件的ID与我之前存储的ID不同,因此它创建了一个我不需要的副本

基本上,用户A outlook日历和用户B outlook日历上的事件具有不同的ID。我不明白这有什么意义,因为它们是相同的,用户B outlook日历上的事件只是用户A outlook日历对该事件的邀请


我的问题是:我有什么办法可以绕过这个问题吗?是否存在通过Outlook/Office365中的用户共享的任何类型的ID?非常感谢

在不同的邮箱中没有唯一且不变的属性。您可以创建事件,并确保属性值唯一且恒定。这要求您能够写入用户A的事件。

这正是
iCalUId
属性的用途。
id
在设计上有所不同,因为它是用户邮箱数据库的一种“主键”。
iCalUId
在日历中应该是相同的

发件人:

iCalUId
-字符串-由不同日历中的事件的所有实例共享的唯一标识符