1

https://i.stack.imgur.com/uq9Yv.png

https://i.stack.imgur.com/jaPaz.png

https://i.stack.imgur.com/SHIuS.png

当我说“不”时,如何获取“数字”参数以清除并输出提示“说数字”?

4

1 回答 1

4

要清除会话中的参数以进行表单填写,您必须将会话中的参数值设置为 null,然后再转换回填写表单的页面。

在会话中如何将参数值设置为 null 有两种方法:

  1. 在页面意图/条件路由的实现参数预设中添加需要清空的参数。

    一种。在您的情况下,您可以在“确认号码”页面的“否”意图路由的履行参数预设中添加具有空值的“号码”参数。

    在此处输入图像描述 湾。当“确认号码”页面的“否”意图路由被触发时,会话中的“号码”参数将被清除,并跳转回“插入号码”页面再次询问号码。 在此处输入图像描述

  2. 通过实现 webhook 将参数值设置为 null。下面是一个示例代码供参考:

     app.post("/clearnumber", async (request, response) => {
       let params = request.body.sessionInfo.parameters; //get the current parameters in the session
       let message = "\n\n number parameter has been cleared... ";
       console.log("request body:" + request.body);
       console.log(".....number........... :" + params.number);
       params.number = null; // setting the number parameter to null
       console.log("..after.resetting.number........... :" + params.number);
       request.body.sessionInfo.parameters = params; //add the parameter changes in the sessionInfo that will be sent back to the agent
       let fulfillmentResponse = {
         fulfillmentResponse: {
           messages: [{
             text: {
               text: []
             }
           }]
         },
         sessionInfo: request.body.sessionInfo
    
       };         fulfillmentResponse.fulfillmentResponse.messages[0].text.text.push(message);
       response.json(fulfillmentResponse);
     });
    

  正如您在下面的屏幕截图中看到的,结果与在控制台中使用参数预设相同。 在此处输入图像描述

于 2020-10-30T05:46:33.147 回答