使用node.js

时间:2016-04-05 01:20:23

标签: node.js express twilio

我正在阅读与SMS消息传递响应相关的部分Twilio文档(https://www.twilio.com/help/faq/why-does-my-twilio-number-respond-with-thanks-for-the-message-configure-your-numbers-sms-url-to-change-this-message),并且我正在尝试构建一个node.js应用程序,这将允许我使用程序化响应来响应入站SMS消息。

我一直在尝试模仿这个处理类似问题(How can I respond to incoming Twilio calls and SMS messages using node.js?)的SO帖子,并提供以下代码:

var AUTH_TOKEN = "*********************";
var twilio = require('twilio');
var express = require('express');
var http = require('http');

var app = express();

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded());


app.post('/welcome/sms/reply/', function(req, res) {
    //Validate that this request really came from Twilio...
    if (twilio.validateExpressRequest(req, AUTH_TOKEN)) {
        var twiml = new twilio.TwimlResponse();
        twiml.say('Hi!  Thanks for checking out my app!');
        res.type('text/xml');
        res.send(twiml.toString());
    }
    else {
        res.send('you are not twilio.  Buzz off.');
    }
});

http.createServer(app).listen(3000);

通过REST客户端调用POST请求/ welcome / sms / reply会产生else语句,我不确定为什么因为AUTH_TOKEN正是我在帐户信息中心中所拥有的。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

Twilio开发者传道者在这里。

如果您尝试使用REST客户端调用自己的端点,并且您正在验证请求(twilio.validateExpressRequest),那么您需要构建same as Twilio does请求。至关重要的是,这包括一个X-Twilio-Signature标题,请在该链接中阅读更多详情。

如果您使用Twilio测试代码,它应该有效并且是有效的请求。