Как сохранить пользовательские вводы, используя выполнения в диалоге - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь создать приложение для 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' - это объекты в намерении, которые хранят вес и единицу веса соответственно. Это правильный подход при попытке обработки пользовательских данных?

1 Ответ

0 голосов
/ 05 января 2019

В вашем коде несколько ошибок, так как они существуют прямо сейчас.

Во-первых, я предполагаю, что это ошибка вставки. Для функции нет закрывающей скобки или круглых скобок. Поскольку вы говорите, что функция вызывается, я предполагаю, что это на самом деле в вашем коде.

Ваш звонок на 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}.`);
...