如何解决访问Autodesk Data Exchange API时的EXC-002权限错误?
解决Data Exchange API查询Exchange Container时的EXC-002 403错误
核心原因
EXC-002错误提示“Read on the source file is forbidden”,说明即便能访问文件夹,应用也没有读取源Revit文件(或对应Exchange文件)的权限——双腿认证的应用权限不会自动继承文件夹的Everyone设置,必须单独配置到项目或文件层级。
解决方案步骤
1. 确认认证令牌的Scope完整性
获取令牌时,需确保scope包含data:read、bucket:read(Exchange文件存储在OSS桶中,需该权限),若涉及修改操作还需data:write。生成令牌的请求scope参数应为:
scope=data:read data:write bucket:read
注:Server2Server应用需提前在APS控制台配置这些scope权限。
2. 给ACC项目分配应用权限
- 登录ACC账户,进入对应项目的Settings > Apps & Integrations
- 找到你的自定义集成应用,为其分配项目管理员或文档管理员角色,至少需拥有文档读取权限
- 应用作为服务身份,无法继承文件夹的Everyone权限,必须直接配置项目级权限
3. 单独配置源文件与Exchange文件的权限
- 在ACC Docs中找到源Revit文件,右键选择Permissions
- 通过应用名称或Client ID搜索你的APS应用,授予View & Download权限
- 对生成的FDX格式Exchange文件执行同样的权限配置
4. 修正查询参数格式
确保请求中的itemID是Base64编码的URN格式(如urn:adsk.objects:os.object:wip.dm.prod/xxx),而非原始item ID字符串。正确的查询URL格式需用双引号包裹URN:
https://developer.api.autodesk.com/exchange/v1/exchanges?filters=attribute.exchangeFileUrn==\"{encodedUrn}\"
5. 检查Server2Server应用的账户关联
- 进入APS控制台的My Apps > 应用详情 > Account Associations,确认应用已与ACC账户建立关联
- 若未关联,发起关联请求并由ACC账户管理员批准
验证流程
完成配置后:
- 重新生成认证令牌
- 先调用Docs API验证能否读取源Revit文件详情:
GET https://developer.api.autodesk.com/data/v1/projects/{projectId}/items/{itemId} - 若读取成功,再重新执行Exchange API的查询请求
内容的提问来源于stack exchange,提问作者CS28
相关产品推荐
相关产品推荐

