使用O365调用Microsoft Graph API获取日历报401无权限如何解决
你遇到的401错误是因为使用客户端凭证流调用Microsoft Graph接口时,权限配置类型不匹配,或者未完成租户管理员授权,按照以下步骤操作即可修复:
操作步骤
1. 进入应用管理页
- 登录Azure门户,打开「Azure Active Directory」服务,在左侧导航栏选择「应用注册」,找到你创建的目标应用进入详情页
2. 配置对应应用权限
- 在应用详情页左侧导航栏选择「API权限」
- 点击「添加权限」,在弹出的面板中选择「Microsoft Graph」
- 权限类型选择应用权限(注意不要选「委托权限」,客户端凭证流仅支持应用权限生效)
- 在权限搜索框输入
Calendar,展开返回结果中的「Calendar」分类,按需勾选权限:- 仅需要读取日历:勾选
Calendar.Read - 需要修改日历内容:勾选
Calendar.ReadWrite
- 仅需要读取日历:勾选
- 点击「添加权限」保存配置
3. 完成管理员授权
- 回到API权限列表页,点击列表上方的「为<你的租户名称>授予管理员同意」按钮,在弹出的确认框中选择「是」
- 确认权限列表的「状态」列显示「已为<你的租户名称>授予」,即为授权生效
4. 验证修复效果
等待1~2分钟让权限配置同步完成后,重新运行代码即可正常拉取日历事件。
补充说明
- 客户端凭证流属于应用级授权,默认配置权限后可以访问租户内所有用户的日历资源,如果仅需要允许应用访问指定用户的日历,可以在Exchange Online中配置应用访问策略限制范围
- 配置权限时请遵循最小权限原则,避免授予超出实际使用需求的权限
内容的提问来源于stack exchange,提问作者challenger128
相关产品推荐
相关产品推荐

