为什么index.js实现的动态部分无法正常工作?

时间:2019-01-03 16:07:23

标签: javascript dialogflow actions-on-google

我正在使用Inline Editor中的实现功能,但是在部署和测试时, 不知道为什么静态响应会很好,但是输入if时,默认响应为“不可用”。 我已经检查了诊断信息,并且在履行响应中,错误是:

{
  "error": "conv.parameters is not a function"
}

但是我不明白为什么。

我在这里复制代码,如果可以的话,谢谢

'use strict';

const functions = require ('firebase-functions');
const {dialogflow} = require ('actions-on-google');

const WELCOME_INTENT = 'Default Welcome Intent';
const FALLBACK_INTENT = 'Default Fallback Intent';
const INFO_DISEASE_INTENT = 'InfoDisease';
const DISEASE_TYPE_ENTITY = 'TypeDisease';


const app = dialogflow ();

app.intent (WELCOME_INTENT, (conv) => {
    conv.ask('Hola! Si quieres puedo darte más información!');
  });


app.intent (FALLBACK_INTENT, (conv) => {
    conv.ask('Ai, no te he entendido, ¿puedes repetirmelo por favor?');
  });

app.intent (INFO_DISEASE_INTENT, (conv) => {

    const disease_type =    
    conv.parameters(DISEASE_TYPE_ENTITY).toLowerCase();

    if (disease_type == "artritis") {
        conv.ask('La artritis es la inflamación de una .');
    } else if (disease_type == "artrosis") {
        conv.ask('Cuando este cartílago, se produce dolor, e.');
    }
      else {
        conv.ask('Me alegra que no tengas ninguna duda!.');
    }

  });


exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

1 个答案:

答案 0 :(得分:1)

问题可能出在您的电话上

const disease_type =    
conv.parameters(DISEASE_TYPE_ENTITY).toLowerCase();

conv.parameters视为函数的位置。 JavaScript中的括号用于指示您正在尝试调用函数。

您似乎更想访问parameters对象上值为DISEASE_TYPE_ENTITY的属性。这是通过JavaScript使用方括号完成的:[]

所以您可能希望将其写为

const disease_type =    
conv.parameters[DISEASE_TYPE_ENTITY].toLowerCase();