Twiml POST请求上的空参数

瓦尔费尔特

一点背景。我有一个正在运行的Web应用程序正在尝试接收来自Twilio的传入文本。我已将Twilio的短信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号码发短信时,代码会运行,但是11200 HTTP retrieval failure我的Twilio日志中出现错误。我的应用程序的日志输出的是第一个日志,console.log但我没有从接收任何数据params.query

{ query: {} }

第二个console.log:console.log(util.inspect(req.body, {showHidden: true, colors: true}));吐出一些垃圾:[90mundefined[39m

我应该放弃参数并尝试解析请求正文吗?

我是REST api的新手,所以我确定我缺少一些非常基本的东西。

菲纳什

Twilio开发人员布道者在这里。

当Twilio POST发送到已配置的SMS URL时,参数将作为请求的正文发送,而不是作为查询字符串参数发送。

我对Picker不太熟悉,但是文档建议您可以使用Express中间件,包括body-parser如果您将Picker与挂钩,body-parser则应该能够从中获取参数req.body可能会这样(注意第2行和第3行,包括body-parser):

if (Meteor.server) {
    var bodyParser = Meteor.npmRequire( 'body-parser');
    Picker.middleware( bodyParser.urlencoded( { extended: false } ) );

    // 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 = req.body.MessageSid,
            accountSid = req.body.AccountSid,
            from = req.body.From,
            to = req.body.To,
            body = req.body.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'});

        let twiml =  '<?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);

        res.end(twiml);
    });
}

让我知道这是否有帮助。

编辑:我认为,您实际上需要将其发送到响应对象,而不是返回TwiML res.send我已经更新了上面的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 API 或 HTTP POST 编辑 Twilio TwiML

来自分类Dev

如何使用TwiML在C#中读取Twilio POST参数?

来自分类Dev

TwiML Bin-无论如何访问参数?

来自分类Dev

在本地主机上开发时,应使用TwiML App设置中的语音请求URL?

来自分类Dev

Twilio twiml记录操作返回空记录,而回调返回空调用者参数

来自分类Dev

Twilio Studio 使用 TwiML Bin 在多语言通话小部件上收集输入

来自分类Dev

TWIML低语宣布

来自分类Dev

TwiML中的记录被跳过

来自分类Dev

Twiml Connect 方法问题

来自分类Dev

Ajax:POST 请求的空参数

来自分类Dev

在Twiml中找不到记录

来自分类Dev

TwiML <Stream>不会持续流

来自分类Dev

更改 Twiml 响应消息 <say>

来自分类Dev

当我们使用rest api拨打电话时,我们在该url参数上使用了什么twiml

来自分类Dev

使用<Dial>时,在TwiML中使用IfMachine

来自分类Dev

Twilio-具有SNI支持的TwiML

来自分类Dev

如何使用Twiml Bins设置语音邮件?

来自分类Dev

使用Twiml如何实现顺序环组?

来自分类Dev

Twiml-自动按(数字)和挂断

来自分类Dev

错误-11750 TwiML响应正文太大

来自分类Dev

Twilio TwiML 响应中的 URL 安全操作

来自分类Dev

通过 TwiML 回复多个 MMS 图像 Twilio

来自分类Dev

POST上的请求正文始终为空

来自分类Dev

POST请求到Rails 4 API的空参数

来自分类Dev

VoiceXML和TwiML / PlivoXML有什么区别?

来自分类Dev

TwiML App意外结束:找不到元素“ response”的声明

来自分类Dev

Twilio TwiML XML字符串而不是url

来自分类Dev

如何指定使用TwiML发音数字/金额的方式?

来自分类Dev

Twiml丢弃语音,在GATHER中循环说SAY动词