2017-05-08 72 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保持建立。 –