我是Twilio的初学者。我知道我可以通过statusCallback来获取SMS发送的状态,这样POST将发生在具有消息状态的callbackurl上。但是我在创建特定的POST端点时遇到了麻烦。 这就是我所拥有的:
// Twilio API CALL
client.sendMessage({
to:userId,
from: metadata.myTwilioNumber,
body: message,
StatusCallback:'POST URL'
}, function(err, responseData) {
if (!err) {
} else {
logger.info(err);
}
我的POST端点是一个简单的节点js(请求,响应)端点。
var server = http.createServer ( function(request,response){
response.writeHead(200,{"Content-Type":"text\plain"});
if(request.method == "GET")
{
response.end("received GET request.")
}
else if(request.method == "POST")
{
console.log(request.CallStatus);
console.log(response);
console.log('receivedRequest');
response.end("received POST request.");
}
else
{
response.end("Undefined request .");
}
});
server.listen(4445);
有人可以帮助我获取响应的状态和messageID吗?目前,POST已被调用,但我无法获取消息详细信息和状态。
答案 0 :(得分:2)
Twilio开发者传道者在这里。
您正在使用基本的Node.js标准库http
模块,该模块将从POST请求中提取信息。我是否可以建议您尝试使用express
代替body-parser
。
您可以通过使用npm:
安装这两个模块来实现npm install express body-parser
然后你可以像这样重写传入的消息应用程序:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/', (req, res) => {
console.log(req.body.CallStatus);
res.sendStatus(200);
});
app.listen(4445, () => {
console.log('Application running on localhost:4445');
});
所有parameters that Twilio sends都可以在req.body
对象上使用。
查看此tutorial on receiving SMS messages with Twilio in Node以获取更多详细信息。