为什么来自 index.js 的实现的动态部分不起作用?
Why the dynamic part of the fulfillment from index.js is not working?
我正在使用内联编辑器实现,但是在部署和测试时,
不知道为什么静态响应运行良好,但在输入 if 时,默认响应是 'not available'。
我检查了诊断信息,在履行响应中,错误是:
{
"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();
我正在使用内联编辑器实现,但是在部署和测试时, 不知道为什么静态响应运行良好,但在输入 if 时,默认响应是 'not available'。 我检查了诊断信息,在履行响应中,错误是:
{
"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();