现在,我完全通过webhook处理Google Action。 我有这个意图,称为意图A,您可以从多种选项中进行选择,所选的选项会触发意图B。 由于我想使它看起来更好,所以我决定在意图A中实现一个列表。 一旦实现了它,我就在我的iphone和Google Assistant模拟器上对其进行了测试:现在的问题是列表显示的很好,但是一旦我点击其中一个选项,响应就会从该应用程序等效于input.unknown。
我将发布一些截图以使其更清晰:
这是我调用助手的第一个屏幕。它是意大利语的,但基本上它会要求您选择其中一种。
现在,让我们假设我们选择第一个,菲亚特。因此,我们点击它,我们得到了:
(“ Non ho capito bene,potresti成熟吗?”的意思是“我不明白您说的是,您能再说一遍吗?”,这是默认的备用意图。)
看着请求,我看到了查询和文本值,它们是应该的,但意图B始终不会触发。因此,我尝试自行输入“菲亚特”,输出如下:
想到我在这里看到的问题是当您点击某个选项时无法使用的“原始文本”。
这是我在javascript中实现列表的方式,如果有遗漏,可能会在这里,但是在上载过程中,我没有收到警告或错误。
app.intent('benvenuto', (conv) => {
if(!conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')){
conv.add('<speak> Ciao! Sono il tuo Assistente FCA per l\'acquisto di
merchandise.' +
'<break time="500ms"/> Quale marchio ti interessa tra i seguenti? <break
time="1.5s"/>' +
'Fiat\n <break time="500ms"/> Jeep\n <break time="500ms"/> Alfa Romeo\n <break
time="500ms"/>' +
'Abarth\n <break time="500ms"/> Lancia <break time="500ms"/> </speak>');
} else {
conv.ask(new SimpleResponse({
speech: '<speak> Ciao! Sono il tuo Assistente FCA per l\'acquisto di merchandise.' +
'<break time="500ms"/> Quale marchio ti interessa tra i seguenti? </speak>',
text: 'Ciao! Sono il tuo Assistente FCA per l\'acquisto di merchandise. Quale marchio ti interessa tra i seguenti?'
}), new List({
title: 'Marchi FCA',
items: {
'Fiat': {
title: 'Fiat',
description: 'Marchio storico da cui è nata FCA',
image: new Image({
url: 'https://firebasestorage.googleapis.com/v0/b/jusan-fca-124a6.appspot.com/o/loghi_colori%2Ffiat_col.png?alt=media&token=3a5f7322-3d17-45d6-8730-9e0894d4ed9a',
alt: 'Fiat'
}),
},
'Lancia': {
title: 'Lancia',
description: 'Marchio spesso associato a grande classe',
image: new Image({
url: 'https://firebasestorage.googleapis.com/v0/b/jusan-fca-124a6.appspot.com/o/loghi_colori%2Flancia_col.png?alt=media&token=82409980-811d-4783-b885-91803ee9a70c',
alt: 'Lancia'
}),
},
'Alfa Romeo': {
title: 'Alfa Romeo',
description: 'Marchio tipico che racchiude sportività ed eleganza',
image: new Image({
url: 'https://firebasestorage.googleapis.com/v0/b/jusan-fca-124a6.appspot.com/o/loghi_colori%2Falfa_col.png?alt=media&token=dff6fca1-4e4b-4acf-89a9-4c74bf8e6cb0',
alt: 'Alfa Romeo'
}),
},
'Abarth': {
title: 'Abarth',
description: 'Casa automobilistica che reinventa per una guida molto sportiva i modelli di punta di Fiat',
image: new Image({
url: 'https://firebasestorage.googleapis.com/v0/b/jusan-fca-124a6.appspot.com/o/loghi_colori%2Fabarth_col.png?alt=media&token=ca470e59-e9ad-4e2e-9f30-709032813133',
alt: 'Abarth'
}),
},
'Jeep': {
title: 'Jeep',
description: 'Uno tra i marchi più famosi al mondo per quanto riguarda SUV e fuoristrada.',
image: new Image({
url: 'https://firebasestorage.googleapis.com/v0/b/jusan-fca-124a6.appspot.com/o/loghi_colori%2Fjeep.png?alt=media&token=f4e26167-6981-48d7-86fb-10cb276c3471',
alt: 'Jeep'
}),
}
}
}))
}
})
另一件事可能很重要,那就是当我在iPhone上尝试操作时,如果我在“菲亚特”上点按另一次而不是键入它,那么它会起作用!
现在我的问题是,我如何才能只敲一次并继续进行对话,而不必再次说/轻按/键入?
答案 0 :(得分:1)
您需要2个意图-一个可能通过使用helpers向用户显示选项,而第二个意图将通过在事件的“事件”部分中放置“ actions_intent_OPTION
”来捕获所选选项。 Dialogflow就像