我正在尝试将SurveyMonkey与我的后端集成。
这是流程:
(1)我们使用PHP的POST方法创建一个webhook(https://developer.surveymonkey.com/api/v3/#webhooks),将Subscription url作为AWS API网关。
(2)当用户完成调查时,SurveyMonkey调用订阅Url(API Gateway),后者又调用Lambda函数来更新数据库。
问题是当我尝试将API网关URL作为订阅Url时,SurveyMonkey会返回错误请求响应。如果我使用一般的.php页面,则会成功创建webhook。
在与SurveyMonkey支持团队的对话中,他们说,API网关应该为HEAD请求返回200响应。我不确定如何在AWS中设置它。
任何使用SurveyMonkey实现/集成API网关的人都可以指导我如何解决这个问题吗?
以下是与SurveyMonkey支持团队的对话:
感谢您重新联系。我刚跟同事谈过 开发团队和他们指出应该没有问题 为您的subscription_URL使用lamda函数。只要它 接受HEAD和POST请求并返回200.我希望这会有所帮助 你出去;当然,如果我能进一步协助,请告诉我。
感谢您重新联系。我想确认那个lambda 函数需要返回200到HEAD请求才能让我们这样做 正确启用webhook。这是在webhook之后没有完成的 cerated,但随着webhook的创建。它似乎仍然像 lambda函数没有响应,或者没有正确响应 创建,所以它将继续失败。我希望这有助于澄清; 如果我能进一步协助,请告诉我。
答案 0 :(得分:2)
无论如何,您需要让API网关响应Option Explicit
Private lastSelectedCell As Range
Private Sub Worksheet_Activate()
Set lastSelectedCell = Range("A1")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' If the most recently selected cell was in column 6 ('G')
If (lastSelectedCell.Column = 6) Then
' If the previously selected cell was a date on or before today
If ((lastSelectedCell.Value <= Date) And (lastSelectedCell.Value > 0)) Then
' Hide the entire row
Rows(lastSelectedCell.Row).EntireRow.Hidden = True
End If
End If
Set lastSelectedCell = Target
End Sub
个请求。有很多方法可以做到这一点。您可以在网址资源中添加HEAD
方法。当您编辑api时,可以在资源部分下的API网关控制台中执行此操作。您可以将HEAD请求发送到lambda函数,并使该函数返回适当HEAD
请求的200
状态代码。您可以在api集成请求中设置模拟返回,但是您需要设置正确的集成详细信息。您也可以设置HEAD
lambda代理集成并处理lambda端的所有内容。
一旦你有了一些设置,你应该能够用curl进行测试:
ANY