2017-05-08 73 views
0

因此,我已经实现了Asana Webhooks API,如其文档中所述。我可以传递一个项目ID并请求创建一个新的webhook。 API成功向我的应用程序发送验证请求,该应用程序返回文档中所述的安全标头。 Asana然后返回预期的成功响应,概述新创建的Webhooks唯一ID。Asana Webhooks API

现在,如果我把这个ID,然后查询Asana API,直接显示所有配置webhook的父Workspace或项目资源上它将返回一个空的数据JSON对象或报告资源不存在,建议尽管给我预期的成功回应,Webhook Ive刚刚创建的实际上并没有创建。

另外如果我然后对项目进行更改,它不会触发webhook,并且我的应用程序上也没有收到任何事件。

奇怪的是,一切都在星期五工作,但今天(星期一)我遇到了这些问题。

任何指针都会很好,我一直在按照我的请求结构工作,并使用PAT进行身份验证,我甚至尝试了新创建的令牌。

感谢,

回答

0

我们的网络挂接使用握手机制,以确保它可能给你打电话回来,但总有后续的请求可能会失败的可能性。另外(尽管我们没有很好地记录这一点 - 我们有机会),我们应该立即尝试在握手后提供(可能)空的事件(它看起来像{"events":[]}。这有点像“第二个回调”)包含自创建webhook以来发生的任何变化

如果失败 - 或者任何后续请求经常失败 - webhook将被删除,在这种情况下,失败意味着返回200或204的HTTP响应代码。

至于为什么您无法查询网络挂接本身,我无法摄制的问题,所以我们不得不深入了解它应该是好的,如果你:

  • 指定工作空间
  • 可选择指定的资源

我测试了这一点,似乎罚款。您还可能希望通过/webhooks/:id端点的id直接查询webhook - 请注意,使用由create返回的webhook的ID,而不是resource字段中的ID。

如果您创建了webhook(具体来说,您的PAT或OAuth应用程序是创建请求的应用程序),您应该看到信息就好了。如果你可以通过ID获得webhook,你应该看到last_failure_atlast_failure_content字段,它会告诉你为什么webhook无法交付。

最后,如果您想联系我们[email protected]并让他们知道更多详细信息(例如,您试图查看的webhook的ID),我们可以从我们这边查看这些字段以查看是否我们可以确定发生了什么。

+0

“这有点像”第二个回调“,其中包含自创建webhook以来发生更改的任何内容。 如果失败 - 或者任何后续请求经常失败 - webhook将被删除。在这种情况下,“失败”意味着返回200或204以外的HTTP响应代码。“ - 这是否包括安全头?如果不是,这可能是我的问题,因为我的API只响应安全头存在,我认为它是发送所有请求 –

+0

如果通过“安全头”来引用握手头“X-Hook-Secret”,它只在握手过程中发送 - 也就是说,在成功的握手建立webhook后它不会被发送。头部'X-Hook-Signature'是在握手请求之后发送给所有请求的,包括这个第一个“什么也没有改变”的第一个回叫,所以握手有“X-Hook-Secret”,所有其他的都有“X-Hook-Signature” – Matt

+0

感谢Matt,我发现我的问题是第一次回调,因为我希望在每个请求中都使用X-Hook-Secret,并在没有请求的情况下拒绝请求,所以现在webhook保持建立。 –