我正在阅读与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正是我在帐户信息中心中所拥有的。
答案 0 :(得分:0)
请参阅此文章,以参考合并ngrok + Express。 https://www.twilio.com/blog/2015/09/monitoring-call-progress-events-with-node-js-and-express.html
答案 1 :(得分:0)
Twilio开发者传道者在这里。
如果您尝试使用REST客户端调用自己的端点,并且您正在验证请求(twilio.validateExpressRequest
),那么您需要构建same as Twilio does请求。至关重要的是,这包括一个X-Twilio-Signature
标题,请在该链接中阅读更多详情。
如果您使用Twilio测试代码,它应该有效并且是有效的请求。