Twilio 斜纹自动驾驶仪场

Twilio 斜纹自动驾驶仪场,twilio,Twilio,我想我一定错过了一些简单的东西。我试图找到一种在任务中创建条件collect语句的方法 我创建了一个简单的自动驾驶任务,它要求一个礼品金额(礼品金额)。在培训屏幕中,我将其中一个短语设置为“Give{gift_amount}”。因此,有人应该能够说“给予”,然后它会要求一个数额。或者,他们可以说“给10个”,这样就不必再索要数量了。它似乎总是要求的数额,虽然,即使我给它的阶段。这是我创建的任务代码 { “行动”:[ { 收集”:{ “姓名”:“礼品金额”, “问题”:[ { “问题”:“谢谢你

我想我一定错过了一些简单的东西。我试图找到一种在任务中创建条件collect语句的方法

我创建了一个简单的自动驾驶任务,它要求一个礼品金额(礼品金额)。在培训屏幕中,我将其中一个短语设置为“Give{gift_amount}”。因此,有人应该能够说“给予”,然后它会要求一个数额。或者,他们可以说“给10个”,这样就不必再索要数量了。它似乎总是要求的数额,虽然,即使我给它的阶段。这是我创建的任务代码

{
“行动”:[
{
收集”:{
“姓名”:“礼品金额”,
“问题”:[
{
“问题”:“谢谢你的慷慨,你想捐多少?”,
“姓名”:“礼品金额”,
“类型”:“斜纹编号”
}
],
“完成时”:{
“重定向”:{
“方法”:“发布”,
“uri”:https://webhook.site"
}
}
}
}
]

}
欢迎来到Stackoverflow!我在Twilio工作

我认为可以使用a来完成您要查找的内容。您可以使用
重定向
来调用a,根据上下文返回不同的动作JSON,而不是在编辑器中使用静态JSON

您的操作将类似于:

{
    "actions": [
        {
            "redirect": "https://random-string-1234.twilio.com/functionname"
        }
    ]
}
在Twilio函数中,您可以检查金额是否已收集。请注意,此代码未经测试,可能有拼写错误:

exports.handler = function(context, event, callback) {
    let actions = [];

    let giftAmount = event.Field_gift_amount_Value;

    if (giftAmount) {
        actions.push({ "say": "Thanks for donating!"});
    } else {
        actions.push({ "collect" : { ... Collect JSON here }});
    }

    callback(null, { actions });
}

根据文档,格式与前面给出的答案不同

这就是成功的原因:

exports.handler = function(context, event, callback) {
   let actions = [];
   console.log(event.CurrentTask);
   console.log(event.Field_gift_amount_Value);
   let giftAmount = event.Field_gift_amount_Value;
   const response = {
       actions: []
   }
   if (giftAmount) {
       response.actions.push({ "say": "Thanks for donating!"});
   } else {
       response.actions.push({ "say": "Cheapskate!"});
   }
   callback(null, response);
}

它看起来像event.Memory不包含“collected_data”对象。但是表单post参数可以通过“event.CurrentTask”或“event.Field_custom_Field_Value”访问。@Jeffdoolitty感谢您跟踪这一点-我也更新了我的代码示例。感谢@CharlieWeemsSee还提供了前缀: