You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphAPI异常:仅可获取自身日历事件,无法读取其他用户日历事件

问题描述

我是测试Azure目录的管理员,拥有自动创建的虚拟用户。使用以下请求可正常获取自身日历事件:

https://graph.microsoft.com/v1.0/users/iamtheadmin@w8tlt.onmicrosoft.com/calendar/events

但将请求URL中的邮箱替换为其他虚拟用户邮箱,尝试获取其日历事件时,Graph Explorer返回如下错误:

"code": "ErrorItemNotFound",
"message": "The specified object was not found in the store."

需说明的是,这些虚拟用户的日历中存在多个事件,并非空日历。我已在Azure AD/应用注册/API权限中配置了相关权限,但仍未找到缺失的设置或权限。


可能的原因及解决步骤

  • 权限范围或类型不匹配
    确认配置的API权限是应用权限而非委托权限。委托权限仅能访问当前登录用户的数据,应用权限才允许以应用身份访问其他用户的资源。若用的是委托权限,即便你是管理员,也无法直接访问虚拟用户的日历(虚拟用户未完成授权操作)。
    需确保添加的是Calendars.Read或Calendars.ReadWrite的应用权限,且已完成管理员同意。

  • 虚拟用户的标识是否正确
    检查请求中的虚拟用户邮箱是否完全正确,包括域名部分。也可尝试用虚拟用户的对象ID替代邮箱发起请求,规避邮箱解析问题:

    https://graph.microsoft.com/v1.0/users/{user-object-id}/calendar/events
    

    对象ID可在Azure AD的用户列表中找到。

  • 虚拟用户邮箱未完成初始化
    自动创建的虚拟用户可能从未登录过Outlook或Exchange Online,未完成邮箱初始化。即便日历中有事件,Graph API也可能无法正确识别其日历资源。可让虚拟用户登录一次Outlook网页版,完成初始化后重试请求。

  • 日历默认权限限制
    即便你是全局管理员,也可能被虚拟用户的日历权限阻止访问。默认情况下,其他用户对日历的访问权限可能是“仅忙/闲”或更低。可通过以下方式修改:

    1. 以管理员身份登录Exchange Admin Center
    2. 找到对应虚拟用户的邮箱,进入“日历权限”设置
    3. 将管理员账户或全局管理员组的权限设置为“读取全部细节”或更高
  • Graph Explorer的登录上下文问题
    确认在Graph Explorer中登录的是管理员账户,且使用应用权限上下文(而非委托权限上下文)。在Graph Explorer的“权限”面板中,勾选对应应用权限并完成管理员同意,切换到应用权限模式发起请求。

内容的提问来源于stack exchange,提问作者Bernard Polman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:32:41