创建范围为项目 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。有什么我想念的吗?

我注意到两件事:

  1. 根据 json 中的 API reference 文件夹成员编码的请求正文应该是由完整的 urn 表示的项目或文件夹 ID。像这样:urn:adsk.wipprod:fs.folder:a.123456789。您的示例中似乎只发送了文件夹 ID 部分。
  2. 您提到您在 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。事实上,文档并不清楚,我已经记录了改进它的请求。很抱歉造成这种混乱。