我在Twilio的HTTP检索失败错误上看到了一些问题。
使用Express快速实现Node.js消息服务器后,我开始一直遇到此错误。它偶尔会滞后我的短信响应10-20秒,并显示在调试器中。
我想知道我是否会遗漏一些明显的东西。由于我正在使用Twilio的示例代码,所以看起来这应该是开箱即用的。
我的代码如下:
app.post('/sms', (req, res) => {
const data = req.body
const message = data.Body
const sender = data.From
console.log('We\'ve received a text...')
console.log('Sender: ', sender)
console.log('Message: ', message)
const responses = [
'Message #1.',
'Message #2.',
'Message #3.',
'Message #4.'
]
client.sendMessage({
to: '+11231231234', // Any number Twilio can deliver to
from: '+11234564567', // A number you bought from Twilio and can use for outbound communication
body: responses[ Math.floor(Math.random() * 4) ] // body of the SMS message
}, function(err, responseData) { //this function is executed when a response is received from Twilio
if (!err) { // "err" is an error received during the request, if any
console.log(responseData.from); // outputs "+14506667788"
console.log(responseData.body); // outputs "Printing some stuff."
}
});
})
任何想法我做错了和/或如何解决这个问题?谢谢!
答案 0 :(得分:4)
Twilio开发者传道者在这里。
通过查看您的代码,您似乎通过在Twilio控制台上设置webhook来响应文本消息。
当您使用webhooks时,Twilio希望您的页面返回TwiML,如果您的页面没有返回它,您将获得间歇性的1200检索错误。您的页面目前没有返回任何内容。
好消息是,你可以通过使用TwiML来简化代码并返回类似的内容:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Sms from="+14105551234" to="+14105556789">The king stay the king.</Sms>
</Response>
您可以使用NodeJS库生成TwiML,或者像上面一样手动创建TwiML。在NodeJS中生成TwiML的示例如下:
app.post('/message', function (req, res) {
var resp = new twilio.TwimlResponse();
resp.message('some message you wanna add');
res.writeHead(200, {
'Content-Type':'text/xml'
});
res.end(resp.toString());
});
希望这有助于你