Microsoft Graph API共享日历ID在用户之间不一致



我的应用程序允许用户在共享日历上安排事件,并允许其他用户可能重新安排或取消这些事件。我请求Calendar.ReadWrite.Shared权限以启用此功能。

看起来,如果两个用户可以访问共享日历,则从GET /me/calendars返回的ID值对于两个用户来说是不同的。是否有一个一致、唯一的ID值可用于关联用户之间的共享日历?

不幸的是,没有一个唯一的ID值可以在所有共享日历实例中共享。

Exchange服务器中的日历建立在邮件文件夹之上(就像约会建立在邮件之上一样)。用户邮箱中的每个文件夹在创建时都分配了一个ID。

当用户与另一个用户(代理人)共享日历时,在幕后发生的情况是,当代理人单击共享邮件中的"接受"按钮时,服务器会在代理人的邮箱中创建共享日历的副本,并设置同步,使副本与原始日历保持同步。这对您的问题很重要,因为当您作为代理人访问共享日历时,您不是在访问所有者邮箱中的日历,而是在访问副本。因为在每个代理的邮箱中都创建了一个副本,所以每个副本的ID都不同。

日历资源上的owner属性告诉原始日历所在的邮箱,但它不足以将其与其他邮箱中的其他副本关联起来。name属性是可编辑的,因此此处不能依赖它。

我使用一个对其他人具有特权的帐户的日历。所以我可以从的每个帐户访问这个cal

/{$user}/calendar/{$cal}/

此外,我可以与delta:同步

/{$user}/calendarView/delta?

但这只适用于";一个";日历,此时此刻没有";Δ;以获取详细的日历。

最新更新