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

使用Access Token调用SharePoint API获取文件列表时遇401错误求助

解决SharePoint API调用401(ID3035)错误及文档库访问问题

核心问题分析

你遇到的401错误(ID3035)和路径混淆直接相关:AAA是文档库,并非普通文件夹,SharePoint的文档库本质是特殊列表,不能用常规文件夹的路径逻辑访问;同时权限配置或token范围也可能是错误诱因。

分步解决方法

1. 确认正确的服务器相对路径(Server Relative Url)

要访问AAA文档库下的Monthly reports文件夹,需先明确完整的服务器相对路径:

  • 打开SharePoint站点,进入Monthly reports文件夹,查看浏览器地址栏(示例:https://yourtenant.sharepoint.com/sites/YourSite/AAA/Monthly%20reports/Forms/AllItems.aspx)
  • 提取出服务器相对路径:/sites/YourSite/AAA/Monthly reports

2. 验证Azure AD应用的权限配置

由于你使用client_id+client_secret的客户端凭证流,必须确保:

  • 在Azure门户的应用注册中,添加SharePoint Online的应用权限(不是委派权限),推荐Sites.Read.All(若仅需访问特定站点,可使用更精细的Sites.Selected)
  • 该权限已获得管理员的同意授权(客户端凭证流必须由管理员审批权限)

3. 正确调用GetFolderByServerRelativeUrl接口

使用规范的API端点和路径:

  • 请求URL示例:
    https://yourtenant.sharepoint.com/sites/YourSite/_api/web/GetFolderByServerRelativeUrl('/sites/YourSite/AAA/Monthly reports')
    
  • 请求头必须包含:
    • Authorization: Bearer <你的access_token>
    • Accept: application/json;odata=nometadata(简化返回格式)

4. 替代方案:通过文档库列表API访问

若文件夹路径仍有问题,可直接通过文档库的列表API获取内容:

  • 获取Monthly reports文件夹下的所有文件:
    https://yourtenant.sharepoint.com/sites/YourSite/_api/web/lists/getbytitle('AAA')/RootFolder/Folders/getbyurl('Monthly reports')/Files
    
  • 获取文件夹下的子文件夹:
    https://yourtenant.sharepoint.com/sites/YourSite/_api/web/lists/getbytitle('AAA')/RootFolder/Folders/getbyurl('Monthly reports')/Folders
    

ID3035错误的常见诱因

  • Token的受众(Audience)与API端点不匹配:确保token是针对目标SharePoint站点(而非根站点)生成的
  • 服务器相对路径错误:路径拼写错误、缺少站点前缀(/sites/YourSite)
  • 权限未生效:管理员同意权限后,需等待数分钟让权限同步

内容的提问来源于stack exchange,提问作者Dina Kleper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:36:14