【发布时间】:2018-09-13 17:38:03
【问题描述】:
所以我一直在尝试通过操作为 DialogFlow 使用不同的响应类型:Actions Responses 和 Webhook/Fulfillment。
到目前为止,我已经能够成功地为 List、Basic Card、Suggestion Chips 等类型生成正确的响应。我现在需要的是一个基于列表的响应,它允许用户在触摸时在浏览器中打开一个链接,以及“不”生成一个聊天气泡。 “浏览轮播”符合条件:Browsing Carousel。
我已成功创建并模拟了 2 个示例项目的输出。问题是用户何时想要继续对话。根据上述帮助中的“指导”部分,浏览轮播:
默认情况下,发送浏览轮播后,麦克风保持关闭状态。如果您想在之后继续对话,我们强烈建议您在轮播下方添加建议提示。
据我了解,用户必须通过说“Ok Google,与 [app] 交谈”再次调用应用程序。这似乎对用户不太友好,因为用户希望在查看轮播链接后返回到她与代理的对话。 请注意,我在 Console.Actions 页面上使用 Google Actions Simulator 模拟了流程。
只要我使用浏览轮播调用意图,它就会与示例项目一起显示给我。但是当我输入/说出下一个命令以继续对话时,代理只是返回:
很抱歉,出了点问题。请重试。
REQUEST/REQUEST 窗口以及 ERRORS/DEBUG 都是空的。我已经记录了对 Webhook 的调用,但没有收到任何调用。
问题:有没有办法让用户能够浏览响应“列表”(不是基本卡)中的信息链接并返回对话而不结束对话。 p>
以下是 Actions > Simulator 中 RESPONSE 窗口对 Browsing Carousel 的响应(请注意,我已删除不相关的部分):
{
"conversationToken": "[token info]",
"expectUserResponse": true,
"expectedInputs": [
{
"inputPrompt": {
"richInitialPrompt": {
"items": [
{
"simpleResponse": {
"textToSpeech": "You have the following 2 options:",
"displayText": "You have the following 2 options:"
}
},
{
"carouselBrowse": {
"items": [
{
"title": "Test 1",
"description": "Desc 2",
"image": {
"url": "[some url]"
},
"openUrlAction": {
"url": "[some url]"
}
},
{
"title": "Test 2",
"description": "Desc 2",
"image": {
"url": "[some url]"
},
"openUrlAction": {
"url": "[some url]"
}
}
]
}
}
],
"suggestions": [
{
"title": "Continue"
},
{
"title": "End"
}
]
}
}
}
],
"responseMetadata": {
"status": {
"message": "Success (200)"
},
"queryMatchInfo": {
"queryMatched": true
}
}
}
【问题讨论】:
-
我相信用户仍在对话中,但麦克风不会监听用户的语音输入。所以你可以说“OK Google”来激活麦克风,然后用户的语音将被处理并直接发送到你的对话中。
-
谢谢。我想我在这里错过的是在设备上测试它而不是使用动作模拟器。在设备上,它只是关闭麦克风,对话并没有结束。这样,如果用户希望继续,他只需要重新激活麦克风即可。
标签: actions-on-google dialogflow-es