每当连续3次触发默认后备意图时,对话因响应而关闭时,我的测试应用都会退出对话。我该如何防止这种情况发生,并且仅在用户要退出操作时才退出操作。
答案 0 :(得分:0)
Google文档中的操作提到了一个fn handle_client(mut stream: TcpStream) {
// read 20 bytes at a time from stream echoing back to stream
loop {
let mut read = [0; 1028];
match stream.read(&mut read) {
Ok(n) => {
if n == 0 {
// connection was closed
break;
}
stream.write(&read[0..n]).unwrap();
}
Err(err) => {
panic!(err);
}
}
}
}
对象,您可以在No-match reprompting小节中了解该对象:
n
尽管conversation design最好不使用此变量-从而在计数器增加到3时让对话关闭-您可以尝试手动重置conv.data.fallbackCount
,例如:
app.intent('Default Fallback Intent', (conv) => {
conv.data.fallbackCount++;
// Provide two prompts before ending game
if (conv.data.fallbackCount === 1) {
conv.contexts.set(DONE_YES_NO_CONTEXT, 5);
conv.ask('Are you done playing Number Genie?');
} else {
conv.close(`Since I'm still having trouble, so I'll stop here. ` +
`Let’s play again soon.`);
}
});
答案 1 :(得分:0)
至少现在使用新的 Google Action,您可以根据 NO_MATCH
意图再次将用户重定向到当前场景。
基本上在您刚刚设置的 webhook 中:
webhookResponseJson.scene.next.name = webhookRequestJson.scene.name