我的应用程序允许用户在共享日历上安排活动,并允许其他用户重新安排或取消这些活动。我要求Calendar.ReadWrite.Shared
权限启用此功能。
如果两个用户有权访问共享日历,则GET /me/calendars
返回的ID值对于这两个用户是不同的。是否有一致的唯一ID值可用于关联用户之间的共享日历?
答案 0 :(得分:2)
不幸的是,没有在所有共享日历实例中共享的唯一ID值。
Exchange服务器中的日历构建在邮件文件夹之上(就像在邮件之上构建约会一样)。用户邮箱中的每个文件夹在创建时都分配了一个ID。
当用户与另一个用户(代表)共享他们的日历时,幕后发生的事情是当代表点击"接受"共享邮件中的按钮,服务器在代理邮箱中创建共享日历的副本,并设置同步,以使副本与原始邮件保持同步。这对您的问题很重要,因为当您以代理身份访问共享日历时,您无法访问所有者邮箱中的日历,而是访问该副本。由于在每个代理邮箱中创建了副本,因此每个副本的ID都不同。
日历资源上的owner
属性会告诉您原始日历所在的邮箱,但它不足以将其与其他邮箱中的其他副本相关联。 name
属性是可编辑的,因此无法在此处依赖。
答案 1 :(得分:0)
为此,我使用了具有他人特权的帐户日历。 因此,我可以通过每个帐户访问此校准
/{$user}/calendar/{$cal}/
我还可以与增量同步:
/{$user}/calendarView/delta?
但这仅适用于“一个”日历,目前,对于“利用”日历没有“增量”。