2017-08-21 1 views
2

Also, ich bin nicht sehr vertraut damit, also bin ich ein wenig verwirrt. Ich versuche, Twilio-Funktionen zu verwenden, um eine Funktion zu erstellen, die eine eingehende SMS-Nachricht an eine API von Dritt-Anbieter sendet. Wie würde ich generell vorgehen?Twilio-Funktionen - Veröffentlichung auf Drittanbieter-API?

Das ist, was ich jetzt hier

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

Antwort

1

ist etwas für den Anfang, den Code für die Twilio Funktion haben. Dies wird eine neue Konversation bei Help Scout erstellen.

Hinweis: event.Body und event.From usw. Der Parameter event enthält Informationen über den spezifischen Aufruf der Twilio-Funktion.

Ersetzen Sie mit Ihren Werten für auth, mailbox id usw.

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

Wäre es möglich, ein Gespräch von zwei Nachrichten zu erstellen? Wenn beispielsweise ein Kunde eine Nachricht sendet, möchte ich, dass Twilio automatisch antwortet, um nach seiner E-Mail zu fragen. Sobald der Kunde mit diesen Informationen antwortet, möchte ich, dass die Funktion eine Konversation erstellt, die die Informationen aus den beiden Nachrichten kombiniert. Ist das möglich? –

+0

Ich bin nicht mit der Help Scout-API vertraut, aber vielleicht mit der Aktualisierung einer Konversation oder von Threads, nachdem Sie die Konversations-ID über die Telefonnummer gefunden haben. Wenn Sie Persistenz benötigen, z. B. eine Telefonnummer, die an E-Mails angepasst ist, sind die Twilio-Funktionen möglicherweise nicht ausreichend. –

+0

Vielleicht könnte das funktionieren, aber ich bin mir auch nicht sicher. Wahrscheinlich etwas, mit dem ich spielen muss. Danke für Ihre Hilfe! –

Verwandte Themen