如何通过API添加ACC/BIM360项目用户?操作问题求助
问题:通过API添加ACC/BIM360项目用户遇到的异常及求助
问题详情
我尝试分两步通过API添加ACC/BIM360项目用户,过程中出现两处异常:
1. 账户用户角色与文档说明不符
调用Account Users POST接口添加账户用户,请求及返回如下:
请求:
POST https://developer.api.autodesk.com/hq/v1/accounts/e28e4423-0545-4350-b33d-0ae3451553ca/users
请求体:
{ "email": "felipe@world-company.com" }
返回结果:
{ "account_id": "e28e4423-0545-4350-b33d-0ae3451553ca", "role": "project_user", "status": "not_invited", "company_id": null, "company_name": null, "last_sign_in": null, "default_role": null, "default_role_id": null, "access_level": "project_user", "id": "646466565-1234-1672-4567-2745455647", "email": "felipe@world-company.com", "name": "Felipe", "nickname": null, "first_name": "Felipe", "last_name": "", "uid": "WWZ2BP5ZKHJKU2Z6", "image_url": "https://images.profile.autodesk.com/default/user_X50.png", "address_line_1": null, "address_line_2": null, "city": null, "postal_code": null, "state_or_province": null, "country": null, "phone": null, "company": null, "job_title": null, "industry": null, "about_me": null, "created_at": "2024-12-31T14:19:55.023Z", "updated_at": "2024-12-31T14:19:55.288Z" }
返回结果中role为project_user,但文档明确说明新添加用户默认应为account_user,存在不一致。
2. 导入项目用户时的报错
调用Project Users Import接口将账户用户加入指定项目,请求如下:
POST https://developer.api.autodesk.com/hq/v2/accounts/e28e4423-0545-4350-b33d-0ae3451553ca/projects/87a8dfe6-ae71-4399-ac9d-abcd123455/users/import
请求体:
[{ "email": "felipe@world-company.com", "services": { "document_management": { "access_level": "admin" }, "project_administration": { "access_level": "admin" } }, "industry_roles": [ "aba30fd9-e926-4155-9647-32791e622abb" ] }]
首次操作报错**“该用户在账户中未激活”**,在UI中将用户Access Level设置为Account Administrator后,又出现新报错:
{ "failure": 1, "success": 0, "success_items": [], "failure_items": [ { "email": "felipe@world-company.com", "company_id": "733e8e04-d86c-4ca8-a061-ae95f726ef57", "user_id": "b0ca8dff-7f64-477c-9a98-2abcd1232456", "services": { "document_management": { "access_level": "admin" }, "project_administration": { "access_level": "admin" } }, "industry_roles": [ "aba30fd9-e926-4155-9647-32791e622abb" ], "errors": [ { "code": 2000, "message": "undefined method `id' for nil:NilClass" } ], "project_id": "87a8dfe6-ae71-4399-ac9d-b7010316a443", "account_id": "e28e44e9-0579-4350-b33d-0ae1161553ca" } ] }
解决方案
针对问题1:账户用户角色不一致
- 添加用户时显式指定
role参数为account_user,修正后的请求体:
{ "email": "felipe@world-company.com", "role": "account_user" }
- 若用户已添加,可调用
Account Users PATCH接口更新角色:
PATCH https://developer.api.autodesk.com/hq/v1/accounts/{account_id}/users/{user_id}
请求体:
{ "role": "account_user" }
针对问题2:导入项目用户的报错
1. 解决“用户未激活”问题
用户状态为not_invited时无法导入项目,需先完成激活:
- 调用
Account Users Invite接口发送激活邀请:
POST https://developer.api.autodesk.com/hq/v1/accounts/{account_id}/users/{user_id}/invite
- 或在UI中点击“重新发送邀请”,待用户接受邀请后状态变为
active。
2. 解决undefined method 'id' for nil:NilClass报错
该报错通常因用户未关联有效公司或行业角色ID无效:
- 确保用户已关联账户内的有效公司:可在UI中为用户分配公司,或调用API更新用户的
company_id字段。 - 验证
industry_roles中的ID是否为当前项目/账户下的有效角色ID:可通过接口获取项目可用角色列表,确认ID正确性。 - 若无需指定行业角色,可直接移除
industry_roles字段后重试请求。
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

