簡體   English   中英

為什么 index.js 實現的動態部分不起作用?

[英]Why the dynamic part of the fulfillment from index.js is not working?

我正在使用內聯編輯器的實現,但是在部署和測試時,不知道為什么靜態響應運行良好,但在輸入 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);

問題可能出在您的生產線上

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM