我想我这里一定缺少简单的东西。我正在尝试找到一种在任务中创建条件收集语句的方法。
我创建了一个简单的自动驾驶任务,该任务要求提供礼物金额(礼物金额)。在训练屏幕中,我将短语之一设置为“ Give {gift_amount}”。因此,某人应该能够说出“放弃”,然后要求您提供一定金额。或者,他们可以说“给10”,它应该跳过询问金额。即使我总是分期付款,它似乎总是要求提供金额。这是我创建的任务代码。
{
"actions": [
{
collect": {
"name": "gift_amount",
"questions": [
{
"question": "Thank for your generosity. How much would you like to give?",
"name": "gift_amount",
"type": "Twilio.NUMBER"
}
],
"on_complete": {
"redirect": {
"method": "POST",
"uri": "https://webhook.site"
}
}
}
}
]
}
答案 0 :(得分:0)
欢迎来到Stackoverflow!我在Twilio工作。
我认为您要寻找的东西可以通过Dynamic Action完成。您可以使用redirect
来调用Twilio function,而不是在编辑器中使用静态的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 });
}
答案 1 :(得分:0)
根据文档,格式与先前给出的答案不同。
https://www.twilio.com/blog/intelligent-coffee-order-system-with-twilio-autopilot
这是可行的:
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);
}