我尝试运行此查询:
https://graph.microsoft.com/v1.0/me/calendars?$filter=owner/name eq 'Megan Bowen' https://graph.microsoft.com/v1.0/me/calendars?$filter=owner/address eq 'noreply@Planner.Office365.com'
但响应是“ErrorInternalServerError”
https://graph.microsoft.com/v1.0/me/calendars?$select=owner/name
谢谢,
以下是帮助您了解和帮助设置所需权限的信息.
开始信息:
要使Graph从共享邮箱中读取(类似于Outlook委托访问),您需要在Azure中设置权限,还可能需要设置共享权限.如果您设置了Calendars.Read.Shared权限,则用户需要共享其日历.如果为应用程序设置Calendars.Read,则它可以访问组织中的所有日历 – 无法过滤范围.
Microsoft Graph permissions reference
查看“Microsoft Graph权限名称”和“日历权限”
在Azure中,设置:
Calendars.Read.Shared权限:允许该应用读取用户可以访问的所有日历中的事件,包括委托和共享日历. (委派权限)
要么
Calendars.Read:允许应用在没有登录用户的情况下读取所有日历的事件. (申请许可)
REST的情况也是如此:
Outlook Calendar REST API reference
请参阅“使用Calendar REST API”
委派权限:
对于委托权限,需要三件事:
Azure中的Calendar.Read.Shared或Calendar.ReadWrite.Shared.
用户还需要向日历授予共享权限.
在代码中请求的权限范围内,请求您在Azure中授予的相同权限.
以下是用户如何使用委派权限共享应用程序的日历:
Calendar sharing in Office 365
Share an Outlook calendar with other people
管理员权限:
对于管理员权限(由后台服务或守护程序应用程序使用),需要为Calendar.Read或Calendar.ReadWrite授予管理员同意.这将允许应用程序访问组织中的所有邮箱.无法将这些权限过滤到低于所有邮箱的任何内容.
额外:
请务必阅读以下内容,其中介绍了凭据的流程:
Azure Active Directory v2.0 and the OAuth 2.0 client credentials flow
有关权限范围的信息:
Scopes,permissions,and consent in the Azure Active Directory v2.0 endpoint
Permission scopes | Graph API concepts
如果正确设置了所有权限
然后你应该能够使用此查询进行休息调用:
https://graph.microsoft.com/v1.0/users/upn@domain.tld/calendars
这里upn @ domain.tld需要是您要查找的用户的UserPrincipalName.