无法处理列表中的选定选项

时间:2018-07-26 15:58:31

标签: javascript actions-on-google dialogflow

现在,我完全通过webhook处理Google Action。 我有这个意图,称为意图A,您可以从多种选项中进行选择,所选的选项会触发意图B。 由于我想使它看起来更好,所以我决定在意图A中实现一个列表。 一旦实现了它,我就在我的iphone和Google Assistant模拟器上对其进行了测试:现在的问题是列表显示的很好,但是一旦我点击其中一个选项,响应就会从该应用程序等效于input.unknown。

我将发布一些截图以使其更清晰:

这是我调用助手的第一个屏幕。它是意大利语的,但基本上它会要求您选择其中一种。 enter image description here

现在,让我们假设我们选择第一个,菲亚特。因此,我们点击它,我们得到了: (“ Non ho capito bene,potresti成熟吗?”的意思是“我不明白您说的是,您能再说一遍吗?”,这是默认的备用意图。) enter image description here

看着请求,我看到了查询和文本值,它们是应该的,但意图B始终不会触发。因此,我尝试自行输入“菲亚特”,输出如下: enter image description here

想到我在这里看到的问题是当您点击某个选项时无法使用的“原始文本”。

这是我在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上尝试操作时,如果我在“菲亚特”上点按另一次而不是键入它,那么它会起作用!

现在我的问题是,我如何才能只敲一次并继续进行对话,而不必再次说/轻按/键入?

1 个答案:

答案 0 :(得分:1)

您需要2个意图-一个可能通过使用helpers向用户显示选项,而第二个意图将通过在事件的“事件”部分中放置“ actions_intent_OPTION”来捕获所选选项。 Dialogflow就像 enter image description here