node.js - Heroku 上的 Node 应用程序出现 Twilio 11200 HTTP 检索失败

标签 node.js heroku twilio

我的 Node.js 应用程序设置为响应通过付费 Twilio 号码收到的短信。我使用 ngrok 对其进行了测试,一切正常。然而,将应用程序部署到 Heroku 后,我开始在 Twilio 控制台中看到 11200 HTTP 检索失败错误。

Heroku 中是否有我需要设置的配置设置?

// Twilio Credentials
const accountSid = 'xxx';
const authToken = 'xxx';
const client = require('twilio')(accountSid, authToken);
const MessagingResponse = require('twilio').twiml.MessagingResponse;

var express = require('express');
var app = express();   
var bodyparser = require('body-parser');

app.use(bodyparser.urlencoded({extended: true}));

app.set('port', (process.env.PORT || 3000));

app.use('/', function(request, response){
response.send();
});

app.post('/sms', function(req, res) {

const twiml = new MessagingResponse();

twiml.message('Hi, this is Culpability. Your incident has been logged. Your 
unique id # XXXX');

res.writeHead(200, {'Content-Type': 'text/xml'});
res.end(twiml.toString());

});

app.listen(app.get('port'), function() {
// console.log('Node app is running on port', app.get('port'));
});

最佳答案

这里是 Twilio 开发者布道者。

我认为问题主要出在您用来发送响应的方法上。目前,/sms 路由的最后一行是 res.end(twiml.toString()); 但是 Response#end is used "to quickly end the response without any data."

我认为您对 res.writeHead() 的使用现在也可能已经过时了。

我会将您的 /sms 路由更改为如下所示:

app.post('/sms', function(req, res) {
  const twiml = new MessagingResponse();
  twiml.message('Hi, this is Culpability. Your incident has been logged. Your unique id # XXXX');
  res.set('Content-Type', 'text/xml');
  res.status(200).send(twiml.toString());
});

然后尝试重新部署到 Heroku 并看看会发生什么。

关于node.js - Heroku 上的 Node 应用程序出现 Twilio 11200 HTTP 检索失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47335713/

相关文章:

javascript - 将每个字母替换为另一个字母

javascript - Nodemailer 给出错误

php - 向 Twilio hello monkey 添加额外的数字

twilio - Twilio 能否检测到对 Google 语音号码的调用是否被转发到语音邮件或真实的人?

ruby-on-rails - 如何将收到的短信(通过 twilio)与我的 Rails 应用程序中的特定用户关联

javascript - GraphQL:在同一查询中使用输入类型及其字段之一

node.js - 我的 Karma 配置跳过了 Jasmine 单元测试

Java - 高级保留空间内存不足

ruby-on-rails - 如何配置 database.yml 以部署到 Heroku

ruby-on-rails - Heroku 区分大小写