【发布时间】:2016-01-28 21:06:42
【问题描述】:
一点背景。我有一个正在运行的网络应用程序正在尝试接收来自 Twilio 的传入文本。我已将 Twilio 的 sms twiml url 配置为指向我的应用程序中的路由:
http://my-app-name.com/api/twiml
在发出请求时,我执行了一些代码:
if (Meteor.server) {
// use picker to make a server side route
Picker.route('/api/twiml', (params, req, res, next) => {
console.log(util.inspect(params, {showHidden: true, colors: true}));
console.log(util.inspect(req.body, {showHidden: true, colors: true}));
// message data (not populating?)
let messageSid = params.query.MessageSid,
accountSid = params.query.AccountSid,
from = params.query.From,
to = params.query.To,
body = params.query.Body;
//console.log(messageSid + '\n' + accountSid + '\n' + from + '\n' + to + '\n' + body)
//from = '+' + from.trim();
//to = '+' + to.trim();
let responseBody = 'Thanks';
res.writeHeader(200, {'Content-Type': 'application/xml'});
return '<?xml version="1.0" encoding="UTF-8"?><Response><Sms from="[TWILIOFROM]" to="[TO]">[BODY]</Sms></Response>'
.replace('[TWILIOFROM]', myNumber)
.replace('[TO]', from)
.replace('[BODY]', responseBody);
});
}
当我发送我的 twilio 号码时,代码会运行,但我的 Twilio 日志中出现 11200 HTTP retrieval failure 错误。我的应用程序的日志正在输出第一个 console.log,但我没有收到来自 params.query 的任何数据。
{ query: {} }
第二个console.log:console.log(util.inspect(req.body, {showHidden: true, colors: true}));吐出一些垃圾:[90mundefined[39m
是否应该放弃参数,尝试解析请求体?
我对 REST api 很陌生,所以我确信我缺少一些非常基本的东西。
【问题讨论】:
标签: node.js rest meteor twilio twilio-twiml