Возникли проблемы с отображением нескольких дисплеев домашних карт на Alexa в режиме единого ответа

У меня запущено приложение на ALEXA (Amazon Echo). Я реализую отображение домашней карты с изображениями. Когда для конкретного звонка, если в ответе только одна карточка. Показывает отлично. Скриншот прилагается  введите описание изображения здесь

"Response": {
  "version" : "1.0",
  "sessionAttributes": {
    "UserCityId": "1",
    "UserCity": "London",
    "latitude": "51.50735090",
    "longitude": "-0.12775830",
    "categoryID": "900",
    "company_id": "1154916",
    "first_name": "User FName",
    "yes_no_for": "",
    "cat_start_limit": "0",
    "categoryName": "music",
    "total_cat_events": "2178",
    "show_rec": "5"
  },
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "This is what alexa speaks out"
    },
    "card": {
      "type": "Standard",
      "title": "Music events in London",
      "text": "The speech passed to alexa",
      "image": { 
        "smallImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg",
        "largeImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg"
      }
     },
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": "Would you like to know events for music ,sports, or something else. Please select one category"
      }
    },
     "shouldEndSession": false
  }
}

Приведенный выше код работает

Проблема указана ниже: Но если один и тот же ответ содержит массив карточек (несколько карточек), alexa не выдаст ошибку.

"Response": {
  "version": "1.0",
  "sessionAttributes": {
    "UserCityId": "1",
    "UserCity": "London",
    "latitude": "51.50735090",
    "longitude": "-0.12775830",
    "categoryID": "900",
    "customer_id": "1154916",
    "first_name": "UserFNAME",
    "yes_no_for": "",
    "cat_start_limit": "0",
    "categoryName": "music",
    "total_cat_events": "2178",
    "show_rec": "5"
  },
  "response" : {
    "outputSpeech" : {
      "type": "PlainText",
      "text": "5th. Baba Yaga's Hut Presents Jambinai, at Corsica Studios, on Monday, May 16th , 7 30 pm"
    },                
    "card": [{
      "type": "Standard",
      "title": "Music events in London",
      "text": "1. Dove Jones Blues Jam!, at Phoenix Artist Club, on Monday, May 16th , 7pm",
      "image": {
        "smallImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg",
        "largeImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg"
      }
    }, {
      "type": "Standard",
      "title": "Music events in London",
      "text": "2. The Hillbilly Moon Explosion, at The Borderline, on Monday, May 16th, 7pm",
      "image": {
        "smallImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg",
        "largeImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg"
      }
    }, {
      "type": "Standard",
      "title": "Music events in London",
      "text": "3. Sian Evans Of Kosheen, at 100 Club, on Monday, May 16th , 7 30 pm",
      "image": {
        "smallImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg",
        "largeImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg"
      }
    }, {
      "type": "Standard",
      "title": "Music events in London",
      "text": "4. Rinocerose, at The Water Rats, on Monday, May 16th , 7 30 pm",
      "image": {
        "smallImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg",
        "largeImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg"
      }
    }, {
      "type": "Standard",
      "title": "Music events in London",
      "text": "5. Baba Yaga's Hut Presents Jambinai, at Corsica Studios, on Monday, May 16th , 7 30 pm",
      "image": {
        "smallImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg",
        "largeImageUrl": "https:\/\/xyz.com\/version\/sports-car-1374425_960_720.jpg"
      }
    }],
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": "Would you like to know events for music ,sports, or something else. Please select one category"
      }
    },
    "shouldEndSession" : false
  }
}

Приведенный выше код не работает.

Вот то, что я пытаюсь преобразовать: посмотрите скриншот  введите описание изображения здесь

Для событий в лондоне звоните, я получаю список из 5 событий в одной карточке. Каждому событию я хочу присвоить изображение и создать его карту.

Может ли кто-нибудь помочь с подходом и выяснить, в чем проблема, используя несколько карт в ответе JSON. Это что alexa поддерживает только одну карту в ответ?


person Vivek Tankaria    schedule 16.05.2016    source источник
comment
Есть ли в документации что-то, что заставило вас поверить, что можно получить ответ с помощью нескольких карточек? Вы не можете этого сделать.   -  person Sam Hanley    schedule 17.05.2016
comment
@sphanley Я просто пытался понять, можно ли это сделать? Но вы знаете, что невозможно создать несколько карточек за один ответ.   -  person Vivek Tankaria    schedule 19.05.2016


Ответы (1)


Атрибут card в ответе принимает объект, а не массив.

Вот пример, который Amazon использует в своем сайт:

{
  "version": "string",
  "sessionAttributes": {
    "string": object
  },
  "response": {
    "outputSpeech": {
      "type": "string",
      "text": "string",
      "ssml": "string"
    },
    "card": {
      "type": "string",
      "title": "string",
      "content": "string",
      "text": "string",
      "image": {
        "smallImageUrl": "string",
        "largeImageUrl": "string"
      }
    },
    "reprompt": {
      "outputSpeech": {
        "type": "string",
        "text": "string",
        "ssml": "string"
      }
    },
    "shouldEndSession": boolean
  }
}

Если вы хотите попробовать создать несколько карточек, вы можете попробовать отправить несколько ответов, но я не уверен, что это сработает.

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

person Alex Rouse    schedule 16.05.2016