Edu*_*ros 7 api rest outlook office365
我正在尝试使用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'
Run Code Online (Sandbox Code Playgroud)
但响应是"ErrorInternalServerError"
为什么这个查询有问题?如何选择特定类型的属性?
https://graph.microsoft.com/v1.0/me/calendars?$select=owner/name
Run Code Online (Sandbox Code Playgroud)
谢谢,
使用 Graph 访问日历需要在 Graph 调用起作用之前进行一些权限配置。所需内容与应用程序类型以及驱动权限类型 \xe2\x80\x93 代表或管理员相关。
\n以下信息可帮助理解和帮助设置所需的权限。
起始信息:
\n\n为了使 Graph 从共享邮箱中读取数据(类似于 Outlook 委托访问),您需要在 Azure 中设置权限,并且可能还需要设置共享权限。如果您设置 Calendars.Read.Shared 权限,则用户将需要共享其日历。如果您为应用程序设置 Calendars.Read,则它可以访问组织 \xe2\x80\x93 中的所有日历,无法过滤范围。
\n\n\n\n查看“Microsoft Graph 权限名称”和“日历权限”
\n\n在 Azure 中,设置:
\n\nCalendars.Read.Shared 权限:允许应用读取用户可以访问的所有日历中的事件,包括委托日历和共享日历。(委托权限)
\n\n或者
\n\nCalendars.Read:允许应用在没有登录用户的情况下读取所有日历的事件。(申请权限)
\n\nREST 也是一样的:
\n\n\n\n请参阅“使用日历 REST API”
\n\n委托权限:
\n\n对于委托权限,需要三件事:
\n\nAzure 中的 Calendar.Read.Shared 或 Calendar.ReadWrite.Shared。\n用户还需要向日历授予共享权限。\n在代码中请求的权限范围内,请求您在 Azure 中授予的相同权限。\n此处用户如何使用委托权限共享应用程序的日历:
\n\n\n\n\n\n管理员权限:
\n\n对于管理员权限(由后台服务或守护程序应用程序使用),需要为 Calendar.Read 或 Calendar.ReadWrite 授予管理员同意。这将允许应用程序访问组织中的所有邮箱。这些权限不能过滤到除所有邮箱以外的任何内容。
\n\n\n\n额外的:
\n\n如何获取 Exchange Online 中的共享邮箱以及有权访问这些邮箱的用户的列表?
\n\n请务必阅读以下内容,其中介绍了凭证的流程:
\n\nAzure Active Directory v2.0 和 OAuth 2.0 客户端凭据流程
\n\n权限范围信息:
\n\nAzure Active Directory v2.0 终结点中的范围、权限和同意\n权限范围 | 图 API 概念
\n\n如果所有权限设置正确
\n那么您应该能够使用此查询进行休息调用:
https://graph.microsoft.com/v1.0/users/upn@domain.tld/calendars\nRun Code Online (Sandbox Code Playgroud)\n\n这里的 upn@domain.tld 需要是您要查找的用户的 UserPrincipalName。
\n\n附带说明一下,任何包含空格的 REST 查询都会失败。如果你需要调用带有空格的东西,你需要查询字符串用 %20 转义空格
\n| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |