使用 webhook 和 Coldfusion 的 Twilio 入站短信

Twilio inbound SMS using webhooks and Coldfusion

我在 Twilio 上设置了 SMS,可以通过 webhook 接收 SMS。我可以操纵表单数据来执行我想要的操作,但是每条入站 SMS 消息都会在 Twilio 的仪表板上引发错误。它正在寻找一些回应。现在我只是在测试时将表单转储到文本文件中。

<!doctype html>
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<Response>   
</Response>
    <cfdump
        var="#form#"
        label="HTTP Body" output="C:/webhook-sms.txt"
        />
</head>
</html>

错误是:MESSAGE 文档中根元素之前的标记必须格式正确。 警告 - 12200 架构验证警告 提供的 XML 不符合 Twilio 标记 XML 架构。请参考具体错误并更正问题。

我需要用什么来回复 Twilio?

在此先感谢您的帮助!

加里

Twilio 期望内容类型为 text/xml,并且还期望响应的第一行为 <?xml version="1.0" encoding="UTF-8"?>

如果您的回复在 <?xml version="1.0" encoding="UTF-8"?> 之前有一个或多个空行,您仍然会收到错误消息。

我最后做的是 Application.cfm 这样的事情:

<cfsetting enablecfoutputonly="true" showdebugoutput="false" requesttimeout="30" />
<cfheader name="content-type" value="text/xml" />
<!--- // more code --->

和以第一行开头的端点文件如下:

<cfoutput><?xml version="1.0" encoding="UTF-8"?></cfoutput>
<!--- // more code --->

并确保发回有效的 TwiML(Twilio 的 XML)(无 HTML)。

谢谢大家。我的最终测试代码如下所示:

    <cfsetting enablecfoutputonly="true" showdebugoutput="false" requesttimeout="30" />
<cfheader name="content-type" value="text/xml" />
<cfoutput><?xml version="1.0" encoding="UTF-8"?>

<Response>
    <Message>Thanks for getting in touch, I'll call you later</Message>
</Response></cfoutput>