我已经在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?
在此先感谢您的帮助!
加里
答案 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>