【问题标题】:Twilio Access Memory Variable in Say Action说动作中的 Twilio 访问内存变量
【发布时间】:2022-01-05 21:50:29
【问题描述】:

有没有一种简单的方法来访问 Autopilot 任务的 Say Action 中的内存变量,例如

【问题讨论】:

    标签: twilio twilio-api twilio-programmable-chat


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    您无法在 Autopilot JSON 中执行此操作,因为 JSON 是静态的。为了使其“动态”并输入内存变量,您可以在将 Autopilot 任务指向的Twilio Function 中执行此操作。

    指向 Twilio 函数的 JSON 类似于:

    {
        "actions": [
            {
                "redirect": {
                    "uri": "https://your-twilio-function-path.twil.io/-whatever-your-path-is"
                }
            }
        ]
    }
    

    Twilio 函数将包含这样的 JavaScript(您需要 JSON.parse 来提取使用 Remember 操作保存的对象,这些对象放置在 Memory 对象的顶层):

    exports.handler = function(context, event, callback) {
        let actions = [];
        let say = {};
        let memory = JSON.parse(event.Memory);
    
        say = {
          "say": `Hi ${memory.name}...`
        }
        actions.push(say);
        let respObj = {
            "actions": actions
        };
        callback(null, respObj);    
    };
    

    当然,你也可以使用

    
    say = {
          "say": "Hi " + memory.name
    }
    

    同样,因为您的机器人需要在对话中使用来自当前对话上下文的数据,所以这是一个动态任务/动态生成的操作。您需要一个任务来使用 Redirect Action 和 Twilio 函数或您自己的端点响应动态操作。使用您所称的“程序任务”窗口将是一项静态任务,不会使用当前对话上下文中的数据。

    如果这有帮助,请告诉我!

    【讨论】:

    • 谢谢!串联( ... + memory.name )有效,但是内联方法($memory.name)不起作用...我有屏幕截图,但无法在评论中添加它们。
    • nvm... 我没有看到应该使用 inline 方法在字符串上使用 `` 而不是 ''。棘手的一个:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2012-02-23
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多