我想我一定是漏掉了一些简单的东西。我正在尝试找到一种在任务中创建条件collect语句的方法。
我创建了一个简单的自动驾驶任务,要求一个礼物金额(gift_amount)。在训练屏幕中,我将其中一个短语设置为"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"
}
}
}
}
]
}
发布于 2019-09-07 05:30:53
根据文档,格式与之前给出的答案不同。
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);
}发布于 2019-09-06 15:04:36
欢迎来到Stackoverflow!我在Twilio工作。
我认为你想要的东西可以用Dynamic Action来完成。您可以使用redirect调用Twilio function,该a将根据上下文返回不同的action 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 });
}https://stackoverflow.com/questions/57810088
复制相似问题