Twilio自动驾驶仪动态说话人动作,带有来自内存的变量

Twilio自动驾驶仪动态说话人动作,带有来自内存的变量,twilio,twilio-click-to-call,Twilio,Twilio Click To Call,在这种情况下,我可以在内存中存储有关客户的其他详细信息。但是我无法在任务定义中访问它们 例如,如果客户希望听到以下信息,我将存储客户的上次购买金额和最后购买日期 { "actions": [ { "remember": { "last_Purchase": "17585", "last_Date":"25-Dec-2

在这种情况下,我可以在内存中存储有关客户的其他详细信息。但是我无法在任务定义中访问它们

例如,如果客户希望听到以下信息,我将存储客户的上次购买金额和最后购买日期

{
"actions": [
    {
        "remember": {
            "last_Purchase": "17585",
            "last_Date":"25-Dec-2020"
        }
    },
    {
        "listen":True
    }
]
}
Dear Customer your last purchase is {memory.last_Purchase} on {memory.last_Date}. 
它们被存储在内存中。但是,我无法在后续任务中使用它(我不会在同一任务中使用它,因为Twilio不支持它)

在后续任务中,我希望能够在任务中创建一个动态发言权,如下所示

{
"actions": [
    {
        "remember": {
            "last_Purchase": "17585",
            "last_Date":"25-Dec-2020"
        }
    },
    {
        "listen":True
    }
]
}
Dear Customer your last purchase is {memory.last_Purchase} on {memory.last_Date}. 
但是我猜语法是错误的,或者我访问内存变量的方式是错误的


请求指导。

这里是Twilio开发者福音传道者

在JavaScript中,您需要在变量名周围的括号前加上一个货币符号($),这样您的
Say
操作在JavaScript中看起来就像这样,比如:

say={
“说:`亲爱的客户,您最后一次购买是${memory.last_purchase}在${memory.last_Date}上`
}
此外,使用
记住
操作保存的对象放在
内存
对象的顶层,因此请确保使用
JSON将其拉出。解析

let memory=JSON.parse(event.memory);
整个JS代码(比如,在Twilio函数中)看起来像

exports.handler=函数(上下文、事件、回调){
让动作=[];
让我们说={};
让memory=JSON.parse(event.memory);
说={
“说:`亲爱的客户,您最后一次购买是${memory.last_purchase}在${memory.last_Date}上`
}
动作。推(说);
设respObj={
“行动”:行动
};
回调(null,respObj);
};
当然,你也可以使用

say={
“说”:“亲爱的客户,您上次购买的是”+memory.last_purchase+”on
“+memory.last_日期
}

Hello,这意味着我必须通过重定向到函数或外部URL?来提供json操作。无法在任务定义(程序任务窗口)中直接定义它吗?因为您的机器人需要在对话中使用当前对话上下文中的数据,这是一个动态任务/动态生成的操作。您需要一个任务来使用重定向操作和Twilio函数或您自己的端点以动态操作响应。在调用程序任务窗口时使用它将是一个静态任务,不会在对话中使用当前与用户对话的上下文中的数据。这很有用。如果它有用并回答了您的问题,如果您将其标记为答案,将不胜感激!