繁体   English   中英

Microsoft Graph API选择并过滤日历中的所有者地址

[英]Microsoft Graph API Select and Filter Owner Address in Calendar

我正在尝试使用Microsoft Graph Api来获取和过滤地址所有者以及日历的地址名称。

我的应用的权限是: 在此输入图像描述

在此输入图像描述

在此输入图像描述

我尝试运行此查询:

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访问日历需要在Graph调用工作之前对权限进行一些配置。 所需要的是与应用程序类型相关的驱动权限类型 - 委托或管理员。
以下是帮助您了解和帮助设置所需权限的信息。

开始信息:

要使Graph从共享邮箱中读取(类似于Outlook委托访问),您需要在Azure中设置权限,还可能需要设置共享权限。 如果您设置了Calendars.Read.Shared权限,则用户需要共享其日历。 如果为应用程序设置Calendars.Read,则它可以访问组织中的所有日历 - 无法过滤范围。

Microsoft Graph权限参考

查看“Microsoft Graph权限名称”和“日历权限”

在Azure中,设置:

Calendars.Read.Shared权限:允许该应用读取用户可以访问的所有日历中的事件,包括委托和共享日历。 (委派权限)

要么

Calendars.Read:允许应用在没有登录用户的情况下读取所有日历的事件。 (申请许可)

REST的情况也是如此:

Outlook Calendar REST API参考

请参阅“使用Calendar REST API”

委派权限:

对于委托权限,需要三件事:

Azure中的Calendar.Read.Shared或Calendar.ReadWrite.Shared。 用户还需要向日历授予共享权限。 在代码中请求的权限范围内,请求您在Azure中授予的相同权限。 以下是用户如何使用委派权限共享应用程序的日历:

Office 365中的日历共享

与其他人共享Outlook日历

管理员权限:

对于管理员权限(由后台服务或守护程序应用程序使用),需要为Calendar.Read或Calendar.ReadWrite授予管理员同意。 这将允许应用程序访问组织中的所有邮箱。 无法将这些权限过滤到低于所有邮箱的任何内容。

无需用户即可访问

额外:

如何获取Exchange Online中具有这些邮箱权限的共享邮箱和用户的列表?

请务必阅读以下内容,其中介绍了凭据的流程:

Azure Active Directory v2.0和OAuth 2.0客户端凭据流

有关权限范围的信息:

Azure Active Directory v2.0端点中的范围,权限和许可 权限范围| 图API API概念

如果正确设置了所有权限
然后你应该可以使用此查询进行休息调用:

https://graph.microsoft.com/v1.0/users/upn@domain.tld/calendars

这里upn @ domain.tld需要是您要查找的用户的UserPrincipalName。

作为旁注,您在其中使用空格进行的任何REST查询都将失败。 如果需要使用空格调用某些内容,则需要使用查询字符串来使用%20来转义空格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM