我目前正在运行一个在Asana和Zendesk之间传递数据的应用程序。
我为Asana中的所有项目创建了webhook,所有项目事件都发送到我的webhook终点,验证请求并尝试识别事件并根据事件类型更新Zendesk的相关数据(某些事件不是'需要)。
但是我最近刚收到Webhooks的以下请求:
"events": [
{
"action": "sync_error",
"message": "There was an error with the event queue, which may have resulted in missed events. If you are keeping resources in sync, you may need to manually re-fetch them.",
"created_at": "2017-05-23T16:29:13.994Z"
}
]
现在因为我没有轮询API以获取事件更新,当事件到达时我会做出反应,我没有考虑使用同步密钥,文档建议只有在轮询事件时才需要这样做。使用Webhooks时是否需要使用?
我错过了什么?
提前感谢任何建议。
答案 0 :(得分:0)
你是正确的,你不需要跟踪webhooks的同步密钥 - 当Asana中的某些内容发生变化时,我们会主动尝试与他们联系,我们会跟踪那些没有发生变化的事件但是已经通过webhooks交付(基本上,类似于我们在成功交付webhooks时更新同步密钥服务器端)。
基本上,这里发生的是由于某种原因,我们的事件队列检测到其内部状态存在问题。这意味着事件没有被记录,或者webhooks在很长一段时间后没有被发送。我们的活动和webhooks尝试以尽力而为的方式跟踪变化,并且我们的生产机器可能会发生一些可能导致这类问题的事情,例如机器在不合适的时间死亡。
不幸的是,回到良好状态的唯一方法是对您正在跟踪的项目进行全面扫描,这就是you may need to manually re-fetch them.
的含义。基本上,强大的实施将Asana同步到外部资源看起来像: