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

时间:2017-10-25 23:05:40

标签: microsoft-graph office365api outlook-restapi

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

为此,我使用了具有他人特权的帐户日历。 因此,我可以通过每个帐户访问此校准

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

我还可以与增量同步:

/{$user}/calendarView/delta?

但这仅适用于“一个”日历,目前,对于“利用”日历没有“增量”。