使用Microsoft图表阅读所有用户日历

时间:2016-05-24 00:28:31

标签: microsoft-graph azure-ad-graph-api

我向我的应用程序提供了以下范围:

SCOPES = [ "Calendars.Read", "User.Read.All" ]

我有一个访问令牌。使用此令牌,我可以获得用户,并且我得到两个用户,这是正确的。

然后当我要求自己的日历(管理员)时:

https://graph.microsoft.com/v1.0/users/stijn@temponia.onmicrosoft.com/calendarview?startDateTime=#{start_date.to_s}&endDateTime=#{end_date.to_s}

这也很有效。但是,当我为其他用户执行此操作时:

https://graph.microsoft.com/v1.0/users/frank@temponia.onmicrosoft.com/calendarview?startDateTime=#{start_date.to_s}&endDateTime=#{end_date.to_s}

我收到此错误消息:

Access is denied. Check credentials and try again.

根据文件:https://graph.microsoft.io/en-us/docs/authorization/permission_scopes

日历。阅读:阅读所有邮箱中的日历:允许该应用在没有登录用户的情况下阅读所有日历的事件。

我与访问令牌一起返回的范围是:“calendars.read user.read.all”,因此它被接受了。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

我们正在努力支持您要求的方案(访问其他用户和日历),但该功能尚未发货。请继续关注...

更新:请查看使用客户端凭证流程。博文https://blogs.msdn.microsoft.com/exchangedev/2015/01/21/building-daemon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow/说明了如何为Outlook API端点执行此操作。但您也应该能够按照Microsoft Graph的说明进行操作。

应用程序需要管理员同意,然后才能访问组织中任何用户的日历,只要他们的邮箱位于Office 365中。