如何从对话框流程中的实现中写入或设置参数值

时间:2019-01-09 22:43:20

标签: dialogflow actions-on-google

基本上,我需要能够将填充后的结果写入先前定义的dialogflow参数。

我可以从dialogflow到fullfillment接收变量的值,但是当我回写时,没有得到预期的结果。该功能的示例如下:

function Validate(agent){
    let P1 = agent.parameters.rut1.Rut; //<<----received OK
    let P2 = agent.parameters.rut1.dv;  //<<----received OK
    let P3;

    P3 = some_function(P1,P2); //<<----------For example

    agent.parameters.next_state = P3; //<<---here the result is not written to the parameter.
}

enter image description here

1 个答案:

答案 0 :(得分:0)

参数在实现响应(V2)的输出上下文中存在。 您需要在相应的输出上下文中指定要添加/更新的参数,同时从Web钩子发送回响应

                response.send(JSON.stringify({
                "fulfillmentText": "Hello, welcome to bot service. I need you to sign in first, your Userid?",
                "outputContexts": [
                    {
                        "name": request.body.session + "/contexts/usercontext",
                        "lifespanCount": 5,
                        "parameters": {
                            "token": result.access_token
                        }
                    }
                ]
            }));

然后您可以在随后的5个调用意图中使用此参数值。