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

调用Graph API访问OneDrive报错:User's mysite not found求助

分析与解决:OneDrive Graph API访问错误 User's mysite not found

咱们先拆解下你遇到的几个问题,核心根源其实是用户的OneDrive/MySite未被预配,具体分析和解决步骤如下:

核心问题定位

你调用GET /me时返回的provisionedPlans是空数组,这是关键信号:

provisionedPlans字段记录了用户已开通的Microsoft 365服务计划,OneDrive for Business对应的条目是类似{"capabilityStatus": "Enabled", "service": "SharePoint", "servicePlanName": "OneDrive for Business"}的内容。空数组说明用户的OneDrive服务根本没被开通/预配。

这直接导致了后续的两个错误:

  1. GET /me/drive返回User's mysite not found:OneDrive完全依赖于用户的个人站点(MySite),没有预配MySite的话,这个端点自然找不到资源。
  2. GET /me?select=mySite返回UnauthorizedAccessException:这是个“假象”权限错误——因为MySite本身不存在,Graph API无法定位到这个资源,所以返回权限拒绝,而非真的你没有权限。

你的访问令牌里已经包含了Files.ReadWrite、MyFiles.Write等必要的OneDrive权限,所以权限本身不是问题,重点在服务预配。

解决步骤

1. 确认用户的Office 365许可证

首先检查该用户是否拥有包含OneDrive for Business的许可证(比如E3/E5、Business Premium、SharePoint Online Plan 1/2等)。如果用户没有对应许可证,需要先为其分配。

2. 手动触发MySite/OneDrive预配

很多时候新创建的用户不会自动预配OneDrive,需要管理员手动触发:

  • 通过Microsoft 365管理中心操作:
    登录管理中心 → 找到目标用户 → 进入用户详情页 → 切换到「OneDrive」标签 → 点击「创建OneDrive」按钮(如果显示的话)。
  • 通过PowerShell命令预配(需要SharePoint Online管理员权限):
    # 先连接到SharePoint Online
    Connect-SPOService -Url https://<your-tenant>-admin.sharepoint.com
    # 触发预配
    Request-SPOPersonalSite -UserEmails "komal.hendre@raykor.com" -NoWait
    

3. 等待预配完成并验证

预配过程可能需要几分钟到几小时,完成后:

  • 再次调用GET /me,你会看到provisionedPlans里出现OneDrive相关的条目。
  • 此时再调用GET /me/drive,应该就能正常返回用户的OneDrive信息了。

4. 后续权限验证(可选)

如果预配完成后仍有问题,可以再次检查访问令牌的scp字段,确保包含Files.Read、Files.ReadWrite或Sites.Read.All等必要权限(你的令牌里已经包含这些,大概率不需要调整)。

内容的提问来源于stack exchange,提问作者mohit sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:26:51