我希望访问同一租户的多个Microsoft Outlook用户的忙/闲信息,以便为他们安排一些活动。
为此,我有几种可能性:
我的问题是所有这些都需要Calendars.Read
或Calendars.Read.Shared
权限。我已经测试了解决方案2(因为我更喜欢应用程序权限),但是在列出事件时,我收到了这些事件的所有信息,并且还可能看到附件,权限太宽。
因此,我的问题如下:我如何才能找到多个用户之间的空闲时间,然后向他们发送Microsoft Outlook日历邀请,而无需授予过宽的权限?
其他问题:我目前正在测试使用Calendars.Read.Shared获取共享事件。我的第一个用户经过了OAuth流程,并授予了我的应用权限。另一个用户与此用户共享他们的日历(仅可用)。但是,在尝试获取事件时(端点:https://graph.microsoft.com/v1.0/users/{user_B_Graph_ID}/events
,我收到“ 403-DelegatedCalendarAccessDenied”错误。有人遇到过吗?
答案 0 :(得分:1)
应用程序许可的范围在设计上非常广泛,这确实是一个“全有或全无”方案。如果您使用Calendar.Read
应用程序范围,则您的应用程序将具有对租户中每个日历的只读访问权限。不可能限制它可以访问哪些日历或数据。
/findMeetingTimes
端点不支持应用程序范围(它使用Calendars.Read.Shared
委托范围),它很可能与您要查找的内容最接近。
/findMeetingTimes
工作流程比/getSchedule
使用起来更麻烦,但是由于/getSchedule
仍处于测试阶段,因此您不应该在生产应用程序中使用它。依赖任何/beta
API都是不安全的,它们可能并且很可能会不时失败。