我的应用程序允许用户在共享日历上安排事件,并允许其他用户可能重新安排或取消这些事件。我请求Calendar.ReadWrite.Shared
权限以启用此功能。
看起来,如果两个用户可以访问共享日历,则从GET /me/calendars
返回的ID值对于两个用户来说是不同的。是否有一个一致、唯一的ID值可用于关联用户之间的共享日历?
不幸的是,没有一个唯一的ID值可以在所有共享日历实例中共享。
Exchange服务器中的日历建立在邮件文件夹之上(就像约会建立在邮件之上一样)。用户邮箱中的每个文件夹在创建时都分配了一个ID。
当用户与另一个用户(代理人)共享日历时,在幕后发生的情况是,当代理人单击共享邮件中的"接受"按钮时,服务器会在代理人的邮箱中创建共享日历的副本,并设置同步,使副本与原始日历保持同步。这对您的问题很重要,因为当您作为代理人访问共享日历时,您不是在访问所有者邮箱中的日历,而是在访问副本。因为在每个代理的邮箱中都创建了一个副本,所以每个副本的ID都不同。
日历资源上的owner
属性告诉原始日历所在的邮箱,但它不足以将其与其他邮箱中的其他副本关联起来。name
属性是可编辑的,因此此处不能依赖它。
我使用一个对其他人具有特权的帐户的日历。所以我可以从的每个帐户访问这个cal
/{$user}/calendar/{$cal}/
此外,我可以与delta:同步
/{$user}/calendarView/delta?
但这只适用于";一个";日历,此时此刻没有";Δ;以获取详细的日历。