Node.js Twilio函数-发布到第三方api?

Node.js Twilio函数-发布到第三方api?,node.js,twilio,twilio-functions,Node.js,Twilio,Twilio Functions,所以,我对这个不太熟悉,所以我有点困惑。我试图使用Twilio函数创建一个函数,将传入的sms消息发布到第三方API。总的来说,我该怎么做 这就是我现在拥有的 exports.handler = function(context, event, callback) { var got = require('got'); var data = event.Body; console.log("posting to helpscout: "+requestPayload); got.

所以,我对这个不太熟悉,所以我有点困惑。我试图使用Twilio函数创建一个函数,将传入的sms消息发布到第三方API。总的来说,我该怎么做

这就是我现在拥有的

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

下面是一些让您开始学习的内容(Twilio函数的代码)。这将在Help Scout上创建新的对话

注意:事件
参数包含有关Twilio函数(传入sms消息)的特定调用的信息。它有
event.Body
event.From
,等等




文档:

是否可以从两条消息创建对话?例如,当客户发送消息时,我希望Twilio自动回复他们的电子邮件请求。一旦客户回复了该信息,我希望该函数能够创建一个对话,将这两条消息中的信息结合起来。这可能吗?我不熟悉HelpScout API,但可能会在通过电话号码搜索会话id后更新会话或线程。如果你需要持久性,例如电话号码匹配电子邮件,那么Twilio功能可能不够。也许这可以工作,但我也不确定。可能是我要玩的东西。谢谢你的帮助!我稍微修改了一下,以便在我自己制作的API上发表文章。必须将
内容类型
标题更改为
应用程序/x-www-form-urlencoded
,然后才能正常工作。非常感谢。
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": "customer@example.com"
            },
            "subject": "SMS message from " + String(event.From),
            "mailbox": {
                "id": "000000"
            },
            "status": "active",
            "createdAt": "2017-08-21T12:34:12Z",
            "threads": [
                {
                    "type": "customer",
                    "createdBy": {
                        "email": "customer@example.com",
                        "type": "customer"
                    },
                    "body": String(event.Body),
                    "status": "active",
                    "createdAt": "2017-08-21T12:34:12Z"
                }
            ]
        }
    );


    // replace with your Help Scout values
    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();

};