获取Azure用户OneDrive数据调用Graph API报ResourceNotFound咨询
调用Microsoft Graph API获取用户OneDrive数据返回
User's mysite not found报错处理方案 错误核心触发原因
该报错与权限配置、user_id传参准确性无直接关联,根源是目标用户对应的SharePoint个人站点(My Site,即OneDrive的底层承载实体)尚未完成初始化预配。
只要对应个人站点实体不存在,哪怕权限配置完全符合接口调用规范,请求https://graph.microsoft.com/v1.0/users/{user_id}/drives接口时,都会抛出ResourceNotFound类别的错误响应。
具体排查与解决步骤
- 校验用户OneDrive许可证分配状态
检查目标用户是否已被分配OneDrive对应服务许可证,未分配许可证的用户不会被系统自动创建个人OneDrive站点,会直接触发mysite不存在的报错。 - 手动触发个人站点预配流程
新加入租户的用户、刚完成OneDrive服务开通的新租户,系统自动调度创建个人站点存在最长24小时的延迟,无需等待自动调度,可通过SharePoint管理中心针对目标用户手动触发OneDrive站点创建流程,待站点创建完成、资源同步5-10分钟后,再重试接口调用。 - 核查租户级OneDrive策略限制
部分租户配置了严格的安全管控规则,关闭了新用户自动创建OneDrive站点的开关,这类场景下必须手动为目标用户开通OneDrive访问权限,完成个人站点创建后,Graph接口才可正常识别到对应的drive资源。 - 规避提前调用的逻辑漏洞
不要在目标用户从未访问过OneDrive的场景下,提前调用接口拉取其Drive数据。Graph API的Drive资源强依赖底层SharePoint My Site的实体存在,无实体站点的前提下,任何级别的调用权限都无法拉取到对应资源。
排错提醒:不要将该报错归类为权限配置问题反复校验权限范围,哪怕配置了
Files.Read.All、Sites.Read.All这类最高级别的应用权限,只要底层My Site实体未创建,接口依然会返回资源不存在的错误。
内容的提问来源于stack exchange,提问作者Alex Polsky
相关产品推荐
相关产品推荐

