无法通过REST API获取SharePoint Online列表:Bearer令牌问题
问题排查与解决方案
1. 修正请求URL路径
你的请求URL存在核心错误:web对象并没有getbytitle方法,获取列表需要调用lists集合的getbytitle方法。正确的请求URL应为:
GET https://companyname.sharepoint.com/_api/web/lists/getbytitle('listname')
2. 验证Authorization头格式
确保Authorization头没有多余的引号,实际发送的格式必须是:
Authorization: Bearer {accessToken}
不要在Bearer和令牌之间添加引号,否则会被识别为无效的令牌格式。
3. 确认权限配置细节
- 检查你配置的是SharePoint Online的Application权限(而非Delegated权限),比如
Sites.Read.All、Sites.ReadWrite.All; - 必须由租户管理员完成权限同意操作,Client Credentials流依赖应用级权限,无法通过普通用户同意生效;
- 若仅需读取特定站点,可使用
Sites.Selected权限并绑定目标站点,避免过度授权。
4. 核对列表名称的准确性
getbytitle接收的是列表的显示名称,而非内部名称;- 若列表名称包含空格或特殊字符,需对其进行URL编码(例如空格替换为
%20)。
5. 补充必要请求头(可选)
部分场景下,添加Content-Type头可避免解析错误:
Content-Type: application/json;odata=verbose
内容的提问来源于stack exchange,提问作者Fabian Rico
相关产品推荐
相关产品推荐

