Вопрос, касающийся выбранных в списке карт (действия на Google) - PullRequest
1 голос
/ 10 марта 2020

Я занимаюсь разработкой торгового бота, в котором пользователь запрашивает продукт, и они динамически отображаются в списке карточек из базы данных. Здесь мой вопрос, как получить вариант того, что пользователь выбирает в списке элементов. Прикрепление кода и скриншотов моей консоли.

function did_select(conv, input, option)
{

     console.log("option",conv);
     const param = conv.getArgument('OPTION');
     console.log("param",param);
    for(var i = 0;i<=temparray1.length;i++)
    {

      if (option === temparray1[i]) {
        conv.close('Number one is a great choice!')
      } 


    }
}

Пожалуйста, помогите мне, Thnx Ramya.

1 Ответ

0 голосов
/ 10 марта 2020

Когда вы отправляли список, вы указали «ключ опции» для каждого из элементов в списке. Эти ключи являются строками, которые будут отправлены обратно в зависимости от того, что выбрал пользователь. Если вы отправили список, используя что-то вроде этого

app.intent('List', (conv) => {
  if (!conv.screen) {
    conv.ask('Sorry, try this on a screen device or select the ' +
      'phone surface in the simulator.');
    return;
  }

  conv.ask('This is a list example.');
  // Create a list
  conv.ask(new List({
    title: 'List Title',
    items: {
      // Add the first item to the list
      'SELECTION_KEY_ONE': {
        synonyms: [
          'synonym 1',
          'synonym 2',
          'synonym 3',
        ],
        title: 'Title of First List Item',
        description: 'This is a description of a list item.',
        image: new Image({
          url: 'https://storage.googleapis.com/actionsresources/logo_assistant_2x_64dp.png',
          alt: 'Image alternate text',
        }),
      },
      // Add the second item to the list
      'SELECTION_KEY_GOOGLE_HOME': {
        synonyms: [
          'Google Home Assistant',
          'Assistant on the Google Home',
      ],
        title: 'Google Home',
        description: 'Google Home is a voice-activated speaker powered by ' +
          'the Google Assistant.',
        image: new Image({
          url: 'https://storage.googleapis.com/actionsresources/logo_assistant_2x_64dp.png',
          alt: 'Google Home',
        }),
      },
      // Add the third item to the list
      'SELECTION_KEY_GOOGLE_PIXEL': {
        synonyms: [
          'Google Pixel XL',
          'Pixel',
          'Pixel XL',
        ],
        title: 'Google Pixel',
        description: 'Pixel. Phone by Google.',
        image: new Image({
          url: 'https://storage.googleapis.com/actionsresources/logo_assistant_2x_64dp.png',
          alt: 'Google Pixel',
        }),
      },
    },
  }));
});

Тогда у вас будет три ключа:

  • SELECTION_KEY_ONE
  • SELECTION_KEY_GOOGLE_HOME
  • SELECTION_KEY_GOOGLE_PIXEL

Один из них будет возвращен вам в параметре option вашего метода-обработчика. Так что ваш обработчик может выглядеть примерно так:

var temparray1 = [
  'SELECTION_KEY_ONE',
  'SELECTION_KEY_GOOGLE_HOME',
  'SELECTION_KEY_GOOGLE_PIXEL'
];
function did_select(conv, input, option)
{

    console.log("option",option);
    for(var i = 0;i<=temparray1.length;i++)
    {
      if (option === temparray1[i]) {
        conv.close('Number '+(i+1)+' is a great choice!')
      } 
    }
}
...