Twilio功能:尝试发送传入短信警报以处理STOP请求

时间:2017-09-07 12:53:52

标签: function twilio twilio-functions

我正在尝试向管理员电话号码发送提醒短信,并使用本地语言版本的STOP响应回复原始短信(我们已关闭此号码的自动回复)。

以下代码适用于向orignator发送回复 - 但是,它不会向我们想要的号码发送提醒短信(目前为+ 447824636xxx)。

我在帮助文档,StackOverflow或Google Twilio开发小组中找不到任何关于这在Twilio函数中如何工作的内容。

请告知如何使突出显示的代码正常工作。

exports.handler = function(context, event, callback) {


console.log ("Incoming SMS")
console.log (event.From)
console.log (event.Body)

if (event.Body == "STOP" || event.Body == "Stop" || event.Body == "stop") {

console.log ("Received a STOP message")

// ***** BELOW CODE DOES NOT SEND SMS ****

// Send a warning message to Chloe
let client = context.getTwilioClient()

let c = client.messages.create({
      body: "We have a STOP message on Fresenius NO from ",
      to: "+447824636xxx",
      from: event.To
})

// ***** ABOVE CODE DOES NOT SEND ANYTHING *****

console.log ("Sent warning to Admin")

// Respond to the user/patient with STOP message in local language 
let twiml = new Twilio.twiml.MessagingResponse();
twiml.message("Du har nå meldt deg av MyFresubin og vil ikke motta flere meldinger fra dette nummeret.");
twiml.message.to = event.From
twiml.message.from = "+4759444xxx"
callback(null, twiml);
}

else {callback(null)}

}

1 个答案:

答案 0 :(得分:2)

您的代码无法正常工作,因为您过早地调用了回调函数,并且在调用Twilio API完成之前将终止执行。

工作代码:

exports.handler = function (context, event, callback) {

    let twiml = new Twilio.twiml.MessagingResponse();
    twiml.message("Du har nå meldt deg av MyFresubin og vil ikke motta flere ....");


    let client = context.getTwilioClient();

    // Send a warning message to Chloe
    client.messages
        .create({
            to: '+447824636xxx',
            from: event.To,
            body: "We have a STOP message on Fresenius NO from " + event.From
        })
        .then(message => {
            console.log(message.sid);

            // Respond to the user/patient with STOP message in local language
            callback(null, twiml);
        });
}

当然,您可以随意添加原始代码中的STOP条件语句。