-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。 –