首页 > 解决方案 > 已创建 Webhook,但从未命中回调

问题描述

我正在尝试在文件转换过程中删除池并集成 webhook。问题是 webhook 已创建但回调从未被回调。

我正在按照此处的说明进行操作:https ://forge.autodesk.com/en/docs/webhooks/v1/tutorials/create-a-hook-model-derivative/

Web 服务器由以下命令启动:ngrok http host-header=rewrite https://localhost:44366

回调是http://f36a47b8.ngrok.io/derivative并且已启动并正在运行。来自邮递员(内部网络)的 Post 请求和来自外部网络(蜂窝数据)的 Post 请求正在到达端点并被成功重定向。

创建一个钩子:

  "hookId": "51897b50-522a-11ea-b885-f34f23e3435e",
  "tenant": "c0761189-32dd-4ca3-9e52-3ae400f91651",
  "callbackUrl": "http://f36a47b8.ngrok.io/derivative",
  "createdBy": "HUpqLPysSUmbFGlhQo0uG8XMqimfQnRG",
  "event": "extraction.updated",
  "createdDate": "2020-02-18T08:40:29.829+0000",
  "system": "derivative",
  "creatorType": "Application",
  "status": "active",
  "scope": {
    "workflow": "c0761189-32dd-4ca3-9e52-3ae400f91651"
  },
  "urn": "urn:adsk.webhooks:events.hook:51897b50-522a-11ea-b885-f34f23e3435e",
  "__self__": "/systems/derivative/events/extraction.updated/hooks/51897b50-522a-11ea-b885-f34f23e3435e"
}

modelderivative/v2/designdata/job发出以下内容的调用:

 var job = new JobRequest
            {
                Input = new Input
                {
                    Urn = urnBase64,
                },
                Output = new Output
                {
                    Formats = new List<Format>
                    {
                        new Format
                        {
                            Type = "svf",
                            Views = new List<string> { "2d", "3d" }
                        }
                    },
                    Destination = new Destination { Region = "EMEA" }
                },
                Misc = new Misc
                {
                    Workflow = workflowId
                }
            };

响应是成功的瓮(像以前一样);

从那时起,网络钩子就没有任何东西了。回调永远不会到达,即使在一段时间内文件被转换并且可以像以前一样在查看器中加载。

我看过这些主题:

无法接收 Forge webhook,或无法触发它们

为什么在创建模型派生作业时不考虑 webhook 工作流?

但他们没有帮助。

我错过了什么?

标签: webhooksautodesk-forge

解决方案


事实证明,“EMEA”区域的衍生 API 作业存在问题,在该区域作业完成时不会调用回调。将区域更改为“我们”可以解决问题,并且在发生工作事件时会触发回调。

从文档示例中更改区域参数:

curl -X 'POST' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Authorization: Bearer PtnrvrtSRpWwUi3407QhgvqdUVKL' \
     -H 'x-ads-force: false' -v 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' \
     -d
'{
   "input": {
     "urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6bW9kZWxkZXJpdmF0aXZlL0E1LnppcA",
     "compressedUrn": true,
     "rootFilename": "A5.iam"
   },
   "output": {
     "destination": {
       "region": "us" <- Change the region form 'EMEA' to 'us'
     },
     "formats": [
       {
         "type": "svf",
         "views": [
           "2d",
           "3d"
         ]
       }
     ]
   }
 }'


推荐阅读