dialogflow-es - 如何在 dialogflow fullfilment 中为返回用户管理自定义?
问题描述
根据 action-on-google 开发者平台上的设计提示,我正在尝试为返回 Google Assistant Voice 应用程序的用户提供自定义欢迎响应。 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);
解决方案
看起来欢迎 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!...');
}
}
永远不会被调用。不清楚为什么你有这个内部功能,因为它不是必需的。你只需要在外部的那个函数的主体。所以它可能看起来像这样,也许:
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!...');
}
});
推荐阅读
- ruby-on-rails - Ruby on Rails 5
- python - 无法使用python3在numpy中导入名称'multiarray'
- java - Spring boot Rest 服务消费者应用程序 - Docker 部署的 SSL 问题
- javascript - 在视图上显示通过模型传递的列表
- ios - 快速从 UILocalNotification 迁移到 UNUserNotification
- asp.net - 使用 HttpClient.PostAsync(uri, TParam, MediaFormatter) 时传输编码被分块并且 RequestBody 被编码
- javascript - Javascript RegExp - 测试字符问题
- javascript - 获取来自 URL 并显示在标签中的图像的大小(以字节为单位)
- python - pandas 在几行中的特定列中查找最小值
- android - FirebaseAnimatedList 中的嵌套子键查询