AWS Lambda 响应不是 TwiML 格式
AWS Lambda response not in TwiML format
我一直在关注这个 tutorial 以设置一个 lambda 函数来回复来自 Twilio webhook 的传入文本。该函数似乎工作正常并接收文本数据,但是当它将 TwiML 传回 Twilio 时,出现了某种格式问题。我在 Twilio 错误日志中收到 12200 - 模式验证警告,但我终究无法找到 TwiML 的问题。消息说:
WARN "Content is not allowed in prolog."
在第 1 行,第 1 列。
我已经按照教程中所述正确设置 API 网关。集成请求映射模板设置为 application/x-www-form-urlencoded
,集成响应和方法响应模板设置为 application/xml
.
我的 lambda 函数是:
def lambda_handler(event, context):
return '<?xml version="1.0" encoding="UTF-8"?><Response><Message><Body>Sorry, the command is invalid.</Body></Message></Response>'
这是我从 Postman 发送请求时得到的响应。在 <?xml
之前有一个引号和一个换行符,这似乎是问题所在,但正如您在上面的 lambda_handler()
中看到的那样,我不相信我会返回任何引号或 \n
.
"
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Response>
<Message>
<Body>Sorry, the command is invalid.</Body>
</Message>
</Response>"
任何有关在 python 中返回 XML 或设置 Lambda API 网关的帮助将不胜感激,因为这似乎就是问题所在。
事实证明,这毕竟是 API 网关的问题。我已经正确设置了它,但没有正确部署它,所以我所做的所有更改都没有实施。确保您的 API 网关已部署,以便您的映射模板真正生效!
我一直在关注这个 tutorial 以设置一个 lambda 函数来回复来自 Twilio webhook 的传入文本。该函数似乎工作正常并接收文本数据,但是当它将 TwiML 传回 Twilio 时,出现了某种格式问题。我在 Twilio 错误日志中收到 12200 - 模式验证警告,但我终究无法找到 TwiML 的问题。消息说:
WARN "Content is not allowed in prolog."
在第 1 行,第 1 列。
我已经按照教程中所述正确设置 API 网关。集成请求映射模板设置为 application/x-www-form-urlencoded
,集成响应和方法响应模板设置为 application/xml
.
我的 lambda 函数是:
def lambda_handler(event, context):
return '<?xml version="1.0" encoding="UTF-8"?><Response><Message><Body>Sorry, the command is invalid.</Body></Message></Response>'
这是我从 Postman 发送请求时得到的响应。在 <?xml
之前有一个引号和一个换行符,这似乎是问题所在,但正如您在上面的 lambda_handler()
中看到的那样,我不相信我会返回任何引号或 \n
.
"
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Response>
<Message>
<Body>Sorry, the command is invalid.</Body>
</Message>
</Response>"
任何有关在 python 中返回 XML 或设置 Lambda API 网关的帮助将不胜感激,因为这似乎就是问题所在。
事实证明,这毕竟是 API 网关的问题。我已经正确设置了它,但没有正确部署它,所以我所做的所有更改都没有实施。确保您的 API 网关已部署,以便您的映射模板真正生效!