DailoggFlow action-on-google: вызов и намерение из текущего намерения - PullRequest
0 голосов
/ 30 мая 2018

В закомментированной области кода, если вызов функции сделан.

newGame.call(conv);

Выдает ошибку: «TypeError: Невозможно прочитать свойство 'ask' of undefined at newGame"

И если я заменю комментарий приведенной ниже строкой кода.

Выдает ошибку: «Ошибка: ответ не был установлен».

app.intent('newGameIntent',newGame);

Вот код.

const functions = require('firebase-functions');
process.env.DEBUG = 'actions-on-google:*';
const {dialogflow,SimpleResponse} = require('actions-on-google');
const app = dialogflow();

var welcome =(conv)=>{
    if(newUser)
    {
        // how to trigger 'newGameIntent' here
    }
    else
    {
        // how to trigger 'LoadGameIntent' here
    }
}

var newGame =(conv)=>{
    conv.ask(new SimpleResponse({
      speech: "Welcome to new game",
      text: "Welcome to new game"
    }));
}

var loadGame =(conv)=>{
    conv.ask(new SimpleResponse({
      speech: "Resuming the game for you",
      text: "Resuming the game for you"
    }));
}

app.intent('Default Welcome Intent',welcome);
app.intent('newGameIntent',newGame);
app.intent('LoadGameIntent',loadGame);

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

1 Ответ

0 голосов
/ 30 мая 2018

В вашем коде вы определяете два var newGame, и поэтому в строке app.intent('LoadGameIntent', loadGame);.

возникнет проблема. А ошибка cannot read property ask of undefined означает, что conv не сохраняется в вашем контексте.Я бы лично попробовал что-то подобное:

app.intent('newGameIntent',conv => newGame(conv));

И изменил бы вашу новую игру:

function newGame(conv) {
conv.ask(new SimpleResponse({
      speech: "Welcome to new game",
      text: "Welcome to new game"
    }));
}
...