2

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

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

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

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

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

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

4

2 回答 2

5

This is precisely what the iCalUId property is for. The id is by design different, as it's a sort of "primary key" for the user's mailbox database. The iCalUId is supposed to be the same across calendars.

From https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/event:

iCalUId - String - A unique identifier that is shared by all instances of an event across different calendars.

于 2017-06-19T14:24:50.757 回答
-2

AFAIK 没有独特的属性,并且在不同的邮箱中也是不变的。您可以向事件添加自定义属性,并确保属性值是唯一且恒定的。这将要求您能够写入用户 A 的事件。

于 2017-06-16T10:47:57.040 回答