创建范围为项目 ID 的 webhook 时出错,但适用于顶级文件夹
Error creating a webhook with a scope = project id but works with top folder
为 BIM360 Team 项目创建 webhook 时,在使用以下 json 正文和请求的项目 ID 创建时出现错误 "Access denied for the scope a.123456789 that you are trying to create hook on":
https://developer.api.autodesk.com/webhooks/v1/systems/data/events/dm.version.added/hooks
{
"callbackUrl": "http://test.com/callback",
"scope": {
"folder": "a.123456789"
}
}
如果在 json 中替换了顶级文件夹 URN,这确实会成功。我已经尝试使用具有 data:create 范围的 2 条腿和 3 条腿的 OAuth。有什么我想念的吗?
我注意到两件事:
- 根据 json 中的 API reference 文件夹成员编码的请求正文应该是由完整的 urn 表示的项目或文件夹 ID。像这样:
urn:adsk.wipprod:fs.folder:a.123456789
。您的示例中似乎只发送了文件夹 ID 部分。
- 您提到您在
data:create
范围内使用 OAuth 令牌。您还需要 data:read
范围。
文档对范围有点模糊。根据 this tutorial data:read
is needed for all requests plus data:create
to create a hook. Reference 提到 data:read
+ data:write
代替。
确保三者都具备,至少在你让它发挥作用之前是这样。
Mandi评论后更新
好吧,现在我发现我的回答具有误导性。项目没有 urn 形式的 id。根据 Webhooks Field Guide:"Please note that, for purpose of Webhooks, Projects are also identified by their Folder URN"。
从文档中并不完全清楚,但它可能是项目的根文件夹:data.relationships.rootFolder
in JSON data.
因此,如果您检查 Data Management Field Guide 中的项目示例对象,id 可能在这里:
"rootFolder": {
"data": {
"type": "folders",
"id": "urn:adsk.wipprod:dm.folder:hC6k4hndRWaeIVhIjvHu8w"
},
@MandiBishop,添加到@Jadranko 的回答中,Webhook API 仅支持文件夹,因此您必须提供文件夹 ID。事实上,文档并不清楚,我已经记录了改进它的请求。很抱歉造成这种混乱。
为 BIM360 Team 项目创建 webhook 时,在使用以下 json 正文和请求的项目 ID 创建时出现错误 "Access denied for the scope a.123456789 that you are trying to create hook on":
https://developer.api.autodesk.com/webhooks/v1/systems/data/events/dm.version.added/hooks
{
"callbackUrl": "http://test.com/callback",
"scope": {
"folder": "a.123456789"
}
}
如果在 json 中替换了顶级文件夹 URN,这确实会成功。我已经尝试使用具有 data:create 范围的 2 条腿和 3 条腿的 OAuth。有什么我想念的吗?
我注意到两件事:
- 根据 json 中的 API reference 文件夹成员编码的请求正文应该是由完整的 urn 表示的项目或文件夹 ID。像这样:
urn:adsk.wipprod:fs.folder:a.123456789
。您的示例中似乎只发送了文件夹 ID 部分。 - 您提到您在
data:create
范围内使用 OAuth 令牌。您还需要data:read
范围。
文档对范围有点模糊。根据 this tutorial data:read
is needed for all requests plus data:create
to create a hook. Reference 提到 data:read
+ data:write
代替。
确保三者都具备,至少在你让它发挥作用之前是这样。
Mandi评论后更新
好吧,现在我发现我的回答具有误导性。项目没有 urn 形式的 id。根据 Webhooks Field Guide:"Please note that, for purpose of Webhooks, Projects are also identified by their Folder URN"。
从文档中并不完全清楚,但它可能是项目的根文件夹:data.relationships.rootFolder
in JSON data.
因此,如果您检查 Data Management Field Guide 中的项目示例对象,id 可能在这里:
"rootFolder": {
"data": {
"type": "folders",
"id": "urn:adsk.wipprod:dm.folder:hC6k4hndRWaeIVhIjvHu8w"
},
@MandiBishop,添加到@Jadranko 的回答中,Webhook API 仅支持文件夹,因此您必须提供文件夹 ID。事实上,文档并不清楚,我已经记录了改进它的请求。很抱歉造成这种混乱。