-1

我想將SurveyMonkey與我的後端集成。SurveyMonkey - 使用AWS API Gateway創建Webhook作爲訂閱Url

這是流量:

(1),我們創建使用POST方法從PHP一個網絡掛接(https://developer.surveymonkey.com/api/v3/#webhooks),與訂閱URL作爲AWS API網關。 (2)當用戶完成一項調查時,SurveyMonkey會調用預訂Url(API網關),然後調用Lambda函數來更新數據庫。

問題是,當我嘗試將API網關URL作爲訂閱Url時,SurveyMonkey返回一個錯誤的請求響應。如果我使用一般的.php頁面,webhook已成功創建。

在與SurveyMonkey支持團隊的對話中,他們說API網關應該爲HEAD請求返回200響應。我不確定如何在AWS中進行設置。

任何已經實施/集成API網關和SurveyMonkey的人請指導我如何解決這個問題?

這裏是SurveyMonkey的支援小組對話:

感謝您與我們聯繫了。我剛剛與開發團隊的 上的同事們進行了交談,他們指出,在您的subscription_URL中使用lamda函數不應該存在問題 。只要它 接受HEAD和POST請求並返回一個200.我希望這有助於 你;當然,請讓我知道,如果我可以進一步協助。

感謝您取得聯繫。我想確認lambda 函數需要返回一個200到HEAD請求,以便我們能夠正確啓用webhook 。這是不是在webhook被 cerated後,但隨着webhook的創建。它看起來仍然像 lambda函數沒有響應或正確響應,因爲它是 創建的,所以它將繼續失敗。我希望這有助於澄清; 請讓我知道,如果我可以進一步協助。

回答

2

無論如何,您需要讓API網關響應HEAD請求。有很多方法可以做到這一點。您可以將HEAD方法添加到您網址的資源中。您可以在編輯api時在資源部分下的API網關控制檯中執行此操作。您可以將HEAD請求發送到lambda函數,並使該函數返回200狀態碼,以獲取適當的HEAD請求。您可以在api集成請求中設置模擬返回,但您需要設置正確的集成詳細信息。您也可以設置ANY lambda代理集成並處理lambda端的所有內容。

一旦你有一些設置你應該能夠與捲曲測試:

curl -I http://yourUrl.example.com 
+0

謝謝。這解決了這個問題。我剛纔在AWS API網關控制檯創建一個HEAD方法和默認返回200。 –