我正在尝试为Google Home制作一个应用程序,该应用程序可以吸引用户的注意力并告诉他们。下面是负责执行此操作的意图的index.js代码,
const functions = require('firebase-functions');
const {dialogflow} = require('actions-on-google');
const app = dialogflow({
debug: true,
});
app.intent('vitals-weight', (conv) => {
const weight = conv.parameters['weight'];
const weight_name = conv.parameters['weight-name'];
conv.ask('I have recorded that your weight is, ${weight} and ${weight-name}.');
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
“ weight”和“ weight-name”是意图中分别存储重量和重量单位的实体。尝试处理用户数据时,这是正确的方法吗?
答案 0 :(得分:0)
您的代码中目前存在多个错误。
首先,我假设是粘贴错误。该函数没有右括号或括号。既然您说函数正在被调用,所以我认为这实际上是在您的代码中。
您对conv.ask()
的调用存在一些逻辑错误。
首先,您正在使用单引号(或撇号),但是尝试在其中进行表达式求值(${}
部分)。仅使用反引号引起来进行表达式评估。
此外,您还有一个表达式${weight-name}
,我认为您正在尝试使用该表达式来访问weight-name
参数(带连字符)。但是,您已将该参数的值分配给名为weight_name
的变量(带下划线)。您也做了一件好事,因为${weight-name}
被评估为“重量减去名称”,而不是其中带有连字符的变量,这是不允许的。您可能希望在那里${weight_name}
。
所以那行看起来应该更像
conv.ask(`I have recorded that your weight is, ${weight} and ${weight_name}.`);