按照Google行动上的开发人员平台上的设计提示,我尝试为返回Google Assistant语音应用程序的用户提供自定义的欢迎回复。 https://developers.google.com/actions/design/tips
要继续,我首先在Fullfilment模式下在Dialogflow中切换“我的默认欢迎”意图。然后在Firebase上部署我的代码。当我请求名称许可时,它运行良好,但是当我尝试输入“ AppRequest.User lastSeen”时,我的应用程序关闭了吗? 也许您知道我在代码中遗漏的内容?
'use strict';
const {
dialogflow,
Permission,
} = require('actions-on-google');
const functions = require('firebase-functions');
const app = dialogflow({debug: true});
app.intent('Default Welcome Intent', (conv) => {
const welcome = (conv) => {
if (conv.user.last.seen) {
conv.ask(`Hey you're back...`);
} else {
conv.ask('Welcome to World Cities Trivia!...');
}
}});
// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
答案 0 :(得分:1)
您应该从conv对象中读取它,它表示会话中的一个转弯,并暴露了各个请求的属性:conv.user.last
。
答案 1 :(得分:1)
似乎您的Intent Handler中的代码实际上没有执行任何操作。
您设置了处理程序
app.intent('Default Welcome Intent', (conv) => {
...
});
但是在您的处理程序中,您创建了另一个函数
const welcome = (conv) => {
if (conv.user.last.seen) {
conv.ask(`Hey you're back...`);
} else {
conv.ask('Welcome to World Cities Trivia!...');
}
}
永远不会被调用。目前尚不清楚为什么需要此内部函数,因为它不是必需的。您只需要在外部的 that 函数的主体即可。这样看起来可能像这样:
app.intent('Default Welcome Intent', (conv) => {
if (conv.user.last.seen) {
conv.ask(`Hey you're back...`);
} else {
conv.ask('Welcome to World Cities Trivia!...');
}
});