在不授予完全读取权限的情况下获取忙/闲信息

时间:2019-03-14 15:18:02

标签: microsoft-graph microsoft-graph-calendar

我希望访问同一租户的多个Microsoft Outlook用户的忙/闲信息,以便为他们安排一些活动。

为此,我有几种可能性:

我的问题是所有这些都需要Calendars.ReadCalendars.Read.Shared权限。我已经测试了解决方案2(因为我更喜欢应用程序权限),但是在列出事件时,我收到了这些事件的所有信息,并且还可能看到附件,权限太宽。

因此,我的问题如下:我如何才能找到多个用户之间的空闲时间,然后向他们发送Microsoft Outlook日历邀请,而无需授予过宽的权限?

其他问题:我目前正在测试使用Calendars.Read.Shared获取共享事件。我的第一个用户经过了OAuth流程,并授予了我的应用权限。另一个用户与此用户共享他们的日历(仅可用)。但是,在尝试获取事件时(端点:https://graph.microsoft.com/v1.0/users/{user_B_Graph_ID}/events,我收到“ 403-DelegatedCalendarAccessDenied”错误。有人遇到过吗?

Here is a documentation file for what I am trying to do.

1 个答案:

答案 0 :(得分:1)

应用程序许可的范围在设计上非常广泛,这确实是一个“全有或全无”方案。如果您使用Calendar.Read应用程序范围,则您的应用程序将具有对租户中每个日历的只读访问权限。不可能限制它可以访问哪些日历或数据。

/findMeetingTimes端点不支持应用程序范围(它使用Calendars.Read.Shared委托范围),它很可能与您要查找的内容最接近。

/findMeetingTimes工作流程比/getSchedule使用起来更麻烦,但是由于/getSchedule仍处于测试阶段,因此您不应该在生产应用程序中使用它。依赖任何/beta API都是不安全的,它们可能并且很可能会不时失败。