【问题标题】:cannot get parameters from queryParam when using event input in Dialogflow v2在 Dialogflow v2 中使用事件输入时无法从 queryParam 获取参数
【发布时间】:2018-11-18 12:32:05
【问题描述】:

我想在响应中打印出向 Dialogflow 发出请求时给出的参数,但由于某种原因,这对我不起作用。

这是请求:

request = {
        session: sessionPath,
        queryInput: {
          event: {
            name: 'questionevt',
            parameters: {
              question: 'this is a question'
            },
            languageCode: 'en-US',
          },
        },
      };

我的 Dialogflow 响应如下所示:

知道为什么这不起作用,它显示为空,就像没有绑定在那里一样。

编辑: 奇怪的是,当我尝试打印出 console.log(result.parameters.fields.question); 时,我看到 { stringValue: '', kind: 'stringValue' } 是一条消息!

【问题讨论】:

标签: javascript google-api google-cloud-platform dialogflow-es


【解决方案1】:

您无法使用默认文本响应来执行此操作,事实上,您需要在履行部分为该意图启用 webhook 调用。我会告诉你我的意图是怎样的。

我的实体:

履行部分的代码(您需要启用内联编辑器):

'use strict';
const http = require('http');

const kind = 'ticket';
exports.dialogflowFirebaseFulfillment = (req, res) => {
  console.log('Dialogflow Request body: ' + JSON.stringify(req.body));
  
  let question = req.body.queryResult.parameters['question'];
  
  switch(question){
      case "computer":
          res.send(JSON.stringify({ 'fulfillmentText': "Restart the computer."}));
          break;
      case "love":
          res.send(JSON.stringify({ 'fulfillmentText': "Forget him/her."}));
          break;
  }
}

那么,如果你尝试一下,它应该是这样工作的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    相关资源
    最近更新 更多