Twilio 11200 HTTP检索失败 - 这是什么意思?

时间:2016-07-19 22:49:47

标签: node.js express twilio

我在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."

      }

  });

})

任何想法我做错了和/或如何解决这个问题?谢谢!

1 个答案:

答案 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());
});

希望这有助于你