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

如何通过REST API正确连接Project Online并解决授权问题

解决Project Online REST API 未授权问题的步骤

你的PWA站点API URL是正确的:https://2023.sharepoint.com/sites/pwa/_api/ProjectData/Projects,问题出在授权方式——Project Online属于Microsoft 365生态,早已禁用Basic Auth,必须使用Azure AD颁发的Bearer令牌进行身份验证。以下是具体操作流程:

1. 在Azure AD注册应用程序

  • 登录Azure门户,进入「Azure Active Directory」→「应用注册」→「新注册」。
  • 填写应用名称,选择「账户类型」(根据需求选,比如「仅此组织目录中的账户」),注册后记录客户端ID和租户ID。
  • 进入应用的「证书和密码」→「客户端密码」,新建一个密码并保存(这个是客户端密钥,仅显示一次,务必记录)。
  • 进入「API权限」→「添加权限」→ 搜索「Project Online」,选择对应权限(比如Project.Read.All,需修改项目则选Project.ReadWrite.All),然后点击「授予管理员同意」(必须租户管理员操作,否则权限不生效)。

2. 获取Azure AD访问令牌

使用客户端凭据流程请求令牌,示例curl请求:

curl --location 'https://login.microsoftonline.com/你的租户ID/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=你的客户端ID' \
--data-urlencode 'client_secret=你的客户端密钥' \
--data-urlencode 'scope=https://2023.sharepoint.com/.default'

返回的JSON中,access_token就是所需的Bearer令牌。

3. 调用Project Online API

在GET请求中添加Authorization头,示例curl命令:

curl --location 'https://2023.sharepoint.com/sites/pwa/_api/ProjectData/Projects' \
--header 'Authorization: Bearer 你的access_token' \
--header 'Accept: application/json;odata=verbose'

执行后即可正常获取项目列表。

常见排查点

  • 确认权限已被管理员同意,否则会返回权限不足错误。
  • 检查scope是否正确:必须匹配你的SharePoint域名(此处为https://2023.sharepoint.com/.default)。
  • 确保客户端ID、租户ID、客户端密钥无输入错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:55:00