【问题标题】:Get original parameter input - Dialogflow Fulfillment获取原始参数输入 - Dialogflow Fulfillment
【发布时间】:2018-07-30 15:39:38
【问题描述】:

我想在我的履行代码中获取参数的原始输入。

我试过了:

var time = agent.parameters.time.original

但结果未定义。

我试过了:

var query = agent.query

但无法准确解析我需要原始输入的参数。

【问题讨论】:

  • 您在使用 Actions on Google Node.js 客户端库吗?
  • @AzaTulepbergenov 不用于此功能,但它是一个依赖项。
  • 您能否在代码运行时粘贴agent.parameters 的值? console.log(agent.parameters)
  • @techpeace 当然是{ time: '2018-08-01T15:00:00+01:00', openclose: 'open', date: '2018-08-01T09:52:34+01:00' }

标签: javascript node.js actions-on-google dialogflow-es


【解决方案1】:

用于参数的原始值的实际名称是“time.original”。为了得到这个,你需要使用类似的东西

var time = agent.parameters['time.original'];

您尝试的是获取名为 originalagent.parameters.time 属性,而不是名为 time.originalagent.parameters 属性。

【讨论】:

  • 谢谢,这是有道理的,但是当我这样做时,结果是undefined。可能是因为参数值不是原始值。我需要正确的 ISO 日期字符串和原始输入。
【解决方案2】:

我在 2019 年 4 月 3 日找到的解决方案如下

添加带有actual entity name 起伏值$yourparametername.orignal 的自定义参数

然后像这样获得它的价值

【讨论】:

    【解决方案3】:

    根据an answer on the old API.ai discourse forums,如果您在意图上设置上下文,原始参数可能仅在 webhook 实现请求中可用。此时,原始参数应该在请求中的contexts 键中可用。

    【讨论】:

    • 这是正确的,大多数人应该可以使用agent.request_.body.queryResult.outputContexts[0].parameters['paramname.original']; 轻松获得此信息,前提是他们设置了任何具有活跃生命周期的上下文。
    • 我还应该注意到,谷歌决定停止旧的 API.ai Discourse 论坛,所以上面的链接不再有效。我已将链接保留在原处,以防他们推翻该决定。
    【解决方案4】:

    请尝试:

    var time = agent.contexts[0].parameters['time.original']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多