如何通过BuildingConnectedAPI的two-legged认证调用GET /projects接口?
无用户参与调用Autodesk APS GET /projects接口的解决方案
默认GET /projects接口依赖用户上下文,普通2-legged令牌无法直接调用,但可通过**服务账户(Service Account)**实现自动化无用户干预调用,具体步骤如下:
1. 创建并配置服务账户
- 登录Autodesk开发者控制台,进入你的应用,找到「服务账户」板块
- 创建服务账户,生成并保存对应的密钥(密钥仅显示一次,丢失需重置)
2. 为服务账户分配项目访问权限
- 进入Autodesk Construction Cloud/BIM 360的项目管理后台
- 将服务账户添加为目标账户下项目的成员,分配至少项目查看权限(比如「查看者」或「项目管理员」角色,按需选择)
3. 获取服务账户的2-legged令牌
- 调用认证接口时,使用服务账户的凭证(客户端ID + 服务账户密钥)
- 请求的scope必须包含
data:read和account:read,这两个是访问项目列表的必要权限
4. 调用GET /projects接口
- 使用上述令牌发起请求,必须携带
account_id参数(指定服务账户绑定的账户ID) - 示例请求:
GET /data/v1/projects?account_id=你的账户ID Authorization: Bearer 服务账户令牌
注意事项
- 普通应用级2-legged令牌无项目访问权限,只有服务账户的令牌能以虚拟用户身份访问项目资源
- 服务账户必须被添加到目标项目中,否则仍会返回权限错误
- 遵循最小权限原则,给服务账户分配刚好满足需求的角色即可
内容的提问来源于stack exchange,提问作者gannagainz
相关产品推荐
相关产品推荐

