应用权限下Microsoft Graph API calendar/getSchedule接口参数选择问题
应用权限下Microsoft Graph getSchedule接口路径参数说明
核心结论
路径参数中的{id|userPrincipalName}直接填写你待查询日程的目标用户的用户ID/用户主体名称即可,无需填写管理员ID。
前置要求说明
调用该接口前你需要先确认两个配置已经完成:
- 你在Azure AD应用注册中为当前应用授予了应用权限类型的
Calendars.Read或Calendars.ReadWrite权限,且该权限已由租户全局管理员完成管理员同意 - 你调用接口时使用的是客户端凭证流获取的access token,token中已包含对应的日历权限声明
为什么无法调用/me路径接口
/me路径的本质是/users/{当前登录用户ID}的缩写,仅支持存在用户登录上下文的委托权限场景识别。你的定时任务属于无用户上下文的纯应用权限场景,没有登录用户标识,因此/me路径无法正常响应,只能使用带明确用户标识的/users/{id|userPrincipalName}路径调用。
常见误区澄清
部分开发者误以为应用权限调用需要传入管理员ID,这是错误认知:管理员仅承担权限同意的审批角色,和你实际要查询的目标用户无关,只要你申请的应用权限已覆盖租户内用户,填写任意目标用户的ID/UPN都可以正常返回结果。
内容的提问来源于stack exchange,提问作者work sarah
相关产品推荐
相关产品推荐

