如何使用 node.js 在 Twilio 中修复无效的 content-type header?

How do I fix an invalid content-type header in Twilio using node.js?

我一直在研究 Twilio projects from Radical Skills,但我一直无法使用 JavaScript 回复收到的短信。我可以使用 TwiML,它是 XML,但我无法像示例所示那样在 JavaScript 中响应。

我在 Twilio 中的消息请求 URL 是 /incoming/handle-incoming-text.xml。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Redirect method="GET">incoming/sms.js</Redirect>
</Response>

当我的 Twilio 应用程序收到短信时,它会重定向到 sms.js。我直接从 example 复制了这段代码。

var twilio = require('twilio');
var resp = new twilio.TwimlResponse();

if( req.Body == 'hello'){
    resp.message('Hi!');
}else if( req.Body == 'bye'){
    resp.message('Goodbye');
}
console.log(resp.toString());

当我从我的 phone 向我的 Twilio 号码发送一条说 "hello" 的短信时,我收到以下回复。

GET /incoming/handle-incoming-text.xml 200 1ms - 240b
GET /incoming/sms.js 200 39ms - 251b

但是,我的 Twilio 号码没有收到回复 "Hi!" 事实上,我根本没有收到回复。

当我检查错误日志时,它给了我一个 12300 Invalid Content-Type 错误和以下消息。

Twilio attempted to retrieve content from the URL but was unable to process the application/javascript Content-Type header in the response. Please see the Twilio XML Markup Documentation for more details on valid Content-Type settings.

我的回复中的一个 headers 是 "Content-Type application/javascript." 根据 twilio-node helper library documentation,它应该输出 XML。但是,它似乎无法正常工作。

我花了好几个小时试图解决这个问题,但我仍然无法让它发挥作用。

此处为 Twilio 开发人员布道师。

Radical Skills 项目似乎缺少一些细节。我建议您通读 this blog post on the node.js helper written by my colleague Kevin. It takes you through how to set up a web server to properly respond to Twilio. For this particular issue, you can take a look at the section on handling SMS.

希望这对您有所帮助,如果我能提供更多帮助,请告诉我。