如何使用node.js修复Twilio中无效的内容类型标头

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

本文关键字:类型 无效 node 何使用 js 修复 Twilio      更新时间:2023-10-04

我一直在Radical Skills的Twilio项目中工作,在使用JavaScript响应传入的文本消息时遇到了问题。我可以使用TwiML,它是XML,但我无法像示例所示那样用JavaScript进行响应。

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

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

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

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());

当我用手机向我的Twilio号码发送一条"你好"的短信时,我会得到以下回复。

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

然而,我没有从我的Twilio号码中收到回复"嗨!"事实上,我根本没有收到回复。

当我查看错误日志时,它给了我一个12300无效内容类型错误,并显示以下消息。

Twilio试图从URL中检索内容,但无法处理响应中的application/javascript content-Type标头。有关有效内容类型设置的更多详细信息,请参阅Twilio XML标记文档。

我的回复中有一个标题是"Content-Typeapplication/javascript"。根据twilio节点助手库文档,它应该输出XML。然而,它似乎没有正常工作。

我花了几个小时试图弄清楚这一点,但我仍然没能做到。

这里是Twilio开发人员的传道者。

激进技能项目似乎缺少一些细节。我建议你阅读一下我的同事Kevin写的关于node.js助手的这篇博客文章。它将带您了解如何设置网络服务器以正确响应Twilio。对于这个特殊的问题,您可以查看有关处理SMS的部分。

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

相关文章: