2017-09-07 1 views
1

J'essaie d'envoyer un SMS d'alerte à un numéro de téléphone administrateur ainsi que de répondre au SMS d'origine avec une version en langue locale de la réponse STOP (nous avons tourné désactiver les réponses automatiques pour ce numéro).Twilio Fonctions: Essayer d'envoyer une alerte SMS entrante pour gérer les demandes STOP

Le code ci-dessous fonctionne pour envoyer la réponse à l'orignateur - cependant, il n'envoie pas de SMS d'alerte au numéro que nous voulons (actuellement + 447824636xxx).

Je ne trouve rien sur les docs d'aide, le groupe de développeurs StackOverflow ou Google Twilio concernant la façon dont cela pourrait fonctionner dans une fonction Twilio.

S'il vous plaît aviser comment faire fonctionner le code en surbrillance.

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)} 

} 

Répondre

2

Votre code ne fonctionnera pas parce que vous appelez trop tôt la fonction de rappel et mettra fin à l'exécution avant l'appel à l'API Twilio être en mesure de terminer.

Code de travail:

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); 
     }); 
} 

Bien sûr, vous pouvez ajouter les STOP instructions conditionnelles que vous avez dans votre code d'origine.