Javascript Google Actions sdk-无法在Q/A会话之外持久保存app.data
我有一个简单的游戏,我在用户和GA之间的Q/a会话之间传递值。但是,我注意到app.state没有在下一个会话中保持值 它基本上是询问正确/错误类型的问题,并将这些问题传递给检查和验证 示例代码Javascript Google Actions sdk-无法在Q/A会话之外持久保存app.data,javascript,actions-on-google,Javascript,Actions On Google,我有一个简单的游戏,我在用户和GA之间的Q/a会话之间传递值。但是,我注意到app.state没有在下一个会话中保持值 它基本上是询问正确/错误类型的问题,并将这些问题传递给检查和验证 示例代码 exports.myQNAFunction = functions.https.onRequest((request, response) => { // get an instance of the Google Actions SDK const app = new ActionsSdkAp
exports.myQNAFunction = functions.https.onRequest((request, response) => {
// get an instance of the Google Actions SDK
const app = new ActionsSdkApp({request: request, response: response});
app.data = {answer: ''}
// Function to handle the built in intents
function handleBuiltInIntent (app) {
// Get dialog state to know where we are in the conversation
var dialogState = app.getDialogState();
// get our custom parameter
var stage = dialogState.stage;
console.info('handleBuiltInIntent: ' + stage);
console.info('app.data.answer: ' + app.data.answer);
// Check where we are in the conversation
if(stage === 1) {
console.info("block stage 1 ")
let rawInput = app.getRawInput();
if(rawInput === 'ok' || rawInput === 'yes' || rawInput === 'sure') {
// user wants to know more
app.tell('Ok then, here are the instructions!');
} else if(rawInput === 'no') {
dialogState.stage = 2;
let question = getNextQuestion();
let answer = qna_object_dict[question];
app.data.answer = answer
app.ask(question, dialogState);
} else {
// we finish the dialog
app.tell('Ok then, goodbye!');
}
} else if(stage === 2) {
console.info("block stage 2 ")
let rawInput = app.getRawInput();
if (rawInput === app.data.answer) {
console.info(app.data.answer)
dialogState.stage = 2;
let question = getNextQuestion();
let answer = qna_object_dict[question];
app.data.answer = answer
app.ask(question, dialogState);
} else {
app.tell('Wong Answer, goodbye!');
}
} else {
// Build a prompt
console.info("block stage 0 ")
let welcome_string = welcomePrompt()
let inputPrompt = app.buildInputPrompt(false,
welcome_string);
dialogState.stage = 1;
app.ask(inputPrompt, dialogState);
}
}
});
是特定于会话的数据,用于维护单个会话的不同步骤之间的状态
如果希望在会话/对话之间为给定用户保留数据,可以使用。是特定于会话的数据,以在单个对话的不同步骤之间保持状态
如果希望在会话/对话之间为给定用户保留数据,可以使用。我确实理解两者之间的区别。我在存储app.data值时遇到困难。然而,这就是我现在正在做的:var dialogState=app.getDialogState()var stage=dialogState.stage;var game_score=dialogState.game_score如果您对问题有更改-更新问题,而不是试图在评论中说些什么。这使得理解问题所在变得非常困难。例如,不要使用
app.data.answer=answer
,而是使用app.userStorage.answer=answer
。这将在会话之间保留数据。我确实理解两者之间的区别。我在存储app.data值时遇到困难。然而,这就是我现在正在做的:var dialogState=app.getDialogState()var stage=dialogState.stage;var game_score=dialogState.game_score如果您对问题有更改-更新问题,而不是试图在评论中说些什么。这使得理解问题所在变得非常困难。例如,不要使用app.data.answer=answer
,而是使用app.userStorage.answer=answer
。这将在会话之间持久化数据。