应用权限Files.ReadWrite.AppFolder调用Graph API访问approot报itemNotFound
问题分析与解决方案
核心原因
应用权限Files.ReadWrite.AppFolder虽允许无用户上下文访问用户的应用文件夹,但该文件夹默认不会自动创建。用应用令牌首次访问未初始化的用户approot时,会返回itemNotFound错误;而用户令牌访问时会自动触发文件夹创建,因此可正常返回结果。
解决步骤
- 确认权限已完成管理员同意:在Azure AD应用注册的「API权限」页面,确保
Files.ReadWrite.AppFolder权限状态为「已授予[租户名称]管理员同意」。应用权限必须经过管理员同意才能生效,仅添加权限不完成同意环节会导致权限无效。 - 初始化用户的approot文件夹:发送
PUT请求到目标端点创建文件夹,而非直接用GET访问。请求示例:
该请求会自动为指定用户创建应用文件夹,之后再发送PUT https://graph.microsoft.com/v1.0/users/{user-id}/drive/special/approot Content-Type: application/json {}GET请求即可正常获取文件夹信息。 - 验证用户ID正确性:确认请求路径中的
{user-id}是目标用户的正确对象ID或用户主体名称(如user@domain.com),避免因ID错误导致的404。
内容的提问来源于stack exchange,提问作者Elie Faës
相关产品推荐
相关产品推荐

