使用TwilioClient从运行时函数执行Studio Flow

时间:2019-05-27 05:15:56

标签: twilio twilio-functions

我创建了一个Twilio Studio Flow来进行通过REST API触发的出站调用。我想从Twilio运行时函数触发此操作,但是在使用TwilioClient库时遇到错误。

通过命令行触发Studio Flow的工作原理如下:

curl -X POST "https://studio.twilio.com/v1/Flows/FWXXXXXXXXXXXXXXXXXXXXXXXXXX/Executions" -d "To=+1XXXXXXXXX" -d "From=+1XXXXXXXXXX" -u ACCOUNT_SID:AUTH_TOKEN

但是尝试通过运行时函数执行等效操作会失败:

exports.handler = function(context, event, callback) {
  const twilioClient = context.getTwilioClient();
  console.log(twilioClient.studio);
  twilioClient.studio.flows('FWXXXXXXXXXXXXXXXXXXXXXXXXXX').executions.create({ 
    to: '+1XXXXXXXXX', 
    from: '+1XXXXXXXXXX', 
    parameters: JSON.stringify({
      name: "Client"
    })
  })
  .then(function(execution) { 
    console.log(execution.sid); 
    callback(null, execution.sid);        
  })
  .catch(error => {
    console.error(`problem with request: ${error.message}`);
    callback(error.message);
  });
};

遇到的错误是:

{ message: 'Cannot read property \'flows\' of undefined',
  name: 'TypeError',
  stack: 'TypeError: Cannot read property \'flows\' of undefined\n    at Object.exports.handler (/var/task/handlers/ZF3ef70f4f38cfdf1c656da43214c01e18.js:6:19)\n    at Object.exports.handler (/var/task/node_modules/enigma-lambda/index.js:306:10)\n    at exports.handler (/var/task/enigma.js:17:9)' }

我已经玩了几个小时,而且似乎离解决方案还差得远。我们将不胜感激为我指出正确的方向!

1 个答案:

答案 0 :(得分:1)

请确保您使用的是Twilio帮助程序库的当前版本。您可以在“ Twilio功能”下,配置当前版本:https://www.twilio.com/console/runtime/functions/configure(在twilio下),3.6.3旧。

最新版本可以在这里找到: https://github.com/twilio/twilio-node/releases(当前为3.31.0)。