使用Webhooks和Coldfusion的Twilio入站SMS

时间:2019-04-03 01:09:59

标签: coldfusion sms twilio

我已经在Twilio上设置了SMS,并且可以通过webhooks接收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?

在此先感谢您的帮助!

加里

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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