2017-08-21 1 views
2

Donc, je ne suis pas très familier avec cela, donc je suis un peu confus. J'essaie d'utiliser Twilio Functions pour créer une fonction qui envoie un message SMS entrant à une API tierce. En général, comment pourrais-je m'y prendre?Twilio Fonctions - envoi à une tierce partie api?

C'est ce que j'ai en ce moment

exports.handler = function(context, event, callback) { 
    var got = require('got'); 
    var data = event.Body; 
    console.log("posting to helpscout: "+requestPayload); 
    got.post('https://api.helpscout.net/v1/conversations.json', 
    { 
     body: JSON.stringify(data), 
     'auth': { 
     'user': process.env.API_KEY, 
     'pass': 'x' 
     }, 
     headers: { 
     'Content-Type': 'application/json' 
     }, 
     json: true 
    }) 
    .then(function(response) { 
    console.log(response.body) 
    callback(null, response.body); 
    }) 
    .catch(function(error) { 
     callback(error) 
    }) 
} 

Répondre

1

Voici quelque chose pour vous aider à démarrer, le code de la fonction Twilio. Cela va créer une nouvelle conversation à Help Scout. Remarque: event.Body et event.From, etc. Le paramètre event contient des informations sur l'appel spécifique de la fonction Twilio.

Remplacez vos valeurs auth, mailbox id, etc.

const https = require('https'); 

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

    let twiml = new Twilio.twiml.MessagingResponse(); 
    twiml.message("Thanks. Your message has been forwarded to Help Scout."); 

    let postData = JSON.stringify(
     { 
      "type": "email", 
      "customer": { 
       "email": "[email protected]" 
      }, 
      "subject": "SMS message from " + String(event.From), 
      "mailbox": { 
       "id": "000000" 
      }, 
      "status": "active", 
      "createdAt": "2017-08-21T12:34:12Z", 
      "threads": [ 
       { 
        "type": "customer", 
        "createdBy": { 
         "email": "[email protected]", 
         "type": "customer" 
        }, 
        "body": String(event.Body), 
        "status": "active", 
        "createdAt": "2017-08-21T12:34:12Z" 
       } 
      ] 
     } 
    ); 

    let postOptions = { 
     host: 'api.helpscout.net', 
     port: '443', 
     path: '/v1/conversations.json', 
     method: 'POST', 
     auth: '1234567890abcdef:X', 
     headers: { 
      'Content-Type': 'application/json', 
      'Content-Length': Buffer.byteLength(postData) 
     } 
    }; 

    let req = https.request(postOptions, function(res) { 
     res.setEncoding('utf8'); 
     res.on('data', function(chunk) { 
      console.log(chunk); 
      callback(null, twiml); 
     }); 
    }); 

    req.write(postData); 
    req.end(); 

}; 

https://www.twilio.com/blog/2017/05/introducing-twilio-functions.html

+0

Serait-il possible de créer une conversation de deux messages? Par exemple, lorsqu'un client envoie un message, je veux que Twilio réponde automatiquement pour demander son email. Une fois que le client répond avec cette information, je voudrais que la fonction crée une conversation combinant l'information des deux messages. Est-ce possible? –

+0

Je ne suis pas familier avec l'API Help Scout, mais peut-être mettre à jour une conversation ou des discussions après avoir obtenu l'identifiant de la conversation par numéro de téléphone. Si vous avez besoin de persistance, par exemple un numéro de téléphone correspondant à un e-mail, les fonctions Twilio peuvent ne pas suffire. –

+0

Peut-être que cela pourrait fonctionner mais je ne suis pas sûr non plus. Probablement quelque chose avec lequel je dois jouer. Merci quand même pour vôtre aide! –