Реализация Twilio statusCallback сталкивается с проблемами - PullRequest
0 голосов
/ 06 июня 2018

Я новичок в Twilio.Я понимаю, что я могу получить статус отправленного SMS, имея statusCallback, так что 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, но я не могу получить подробности и статус сообщения.

1 Ответ

0 голосов
/ 06 июня 2018

Разработчик Twilio здесь.

Вы используете базовый модуль http стандартной библиотеки Node.js, который сделает большую работу по извлечению информации из запроса 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');
});

Все параметры , которые Twilio отправляет , будут доступны для объекта req.body.

Ознакомьтесь с этим руководством по получению SMS-сообщений с помощью Twilio в узле , чтобы получить более подробную информацию.

...