我目前正在开发Microsoft,在尝试同步事件时遇到了一些问题。
基本上,我有两个用户在我的web服务:他们都有一个Outlook附件。用户A在我的web服务上创建一个事件,并添加用户B作为参与者。然后使用REST将该事件发送到Outlook。它是在用户A Outlook日历上创建的,用户B在Outlook上接收邀请,事件也在他的Outlook日历中创建。
现在,在我的web服务上,当创建事件时,我检索事件的Microsoft并将其存储在我的数据库中。这样,当我想在Outlook日历和我的日历之间同步事件时,我所做的就是检索所有Outlook事件,检查它们的ID,看看它们是否存储在我的数据库中:如果它们是,那么事件已经存在于我的web服务中,如果它们不是,那么我就在我的web服务中创建事件。
我遇到的问题是,当我试图从用户B获取Outlook事件时,事件的ID与我先前存储的ID不同,因此它会创建一个我不需要的副本。
基本上,用户A outlook日历上的事件和用户B outlook日历上的事件有不同的ID。我不明白这有什么意义,因为它们是相同的,用户B outlook日历上的事件只是用户A outlook日历对用户的邀请。
我的问题是:我有什么办法可以绕过这件事吗?Outlook/Office365 365中的用户是否共享任何类型的ID?非常感谢!
发布于 2017-06-19 06:24:50
这正是iCalUId
属性的作用所在。id
在设计上是不同的,因为它是用户邮箱数据库的“主键”。iCalUId
应该在日历上是相同的。
来自https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/event
iCalUId
- String -一个唯一的标识符,由一个事件的所有实例在不同的日历上共享。
发布于 2017-06-16 02:47:57
在不同的邮箱中没有唯一且常量的AFAIK属性。您可以对事件进行添加自定义属性,并确保属性值是唯一的和常量的。这将要求您能够写入用户A的事件。
https://stackoverflow.com/questions/44586046
复制