Формат ответа
Внимание
Время ожидания ответа от навыка — 4,5 секунды. Если Диалоги не получат ответ в течение этого времени, сессия навыка завершится. Алиса сообщит пользователю, что навык не отвечает.
Время ответа — это время от начала отправки запроса в навык сервером Алисы до полного получения ответа от навыка. В 4,5 секунды входят:
- установка сетевого соединения;
 - время доставки запроса до сервера навыка;
 - собственное время работы навыка;
 - время доставки ответа до серверов Алисы.
 
Обработчик навыка должен ответить на полученный от Яндекс Диалогов запрос согласно формату:
{
  "response": {
    "text": "Здравствуйте! Это мы, хороводоведы.",
    "tts": "Здравствуйте! Это мы, хоров+одо в+еды.",
    "card": {
      "type": "...",
    },     
    "buttons": [
        {
            "title": "Надпись на кнопке",
            "payload": {},
            "url": "https://example.com/",
            "hide": true
        }
    ],
    "end_session": false,
    "directives": {}
  },
  "session_state": {
      "value": 10
  },
  "user_state_update": {
      "value": 42
  },
  "application_state": {
      "value": 37
  },
  "analytics": {
        "events": [
            {
                "name": "custom event"
            },
            {
                "name": "another custom event",
                "value": {
                    "field": "some value",
                    "second field": {
                        "third field": "custom value"
                    }
                }
            }
        ]
    },
  "version": "1.0"
}
        
    Содержимое тела ответа
| 
 Свойство  | 
 Описание  | 
| 
 object Обязательное свойство. Данные для ответа пользователю.  | 
|
| 
 
  | 
 object Объект, содержащий состояние навыка для хранения в контексте сессии.  | 
| 
 
  | 
 object Объект, содержащий состояние навыка для хранения в контексте авторизованного пользователя.  | 
| 
 
  | 
 object Объект, содержащий состояние навыка для хранения в контексте экземпляра приложения пользователя.  | 
| 
 object Объект с данными для аналитики. Доступен навыкам с подключенным параметром Настройки AppMetrica. Подробнее см. в разделе AppMetrica.  | 
|
| 
 
  | 
 string Обязательное свойство. Версия протокола. Текущая версия — 1.0.  | 
response
Данные для ответа пользователю.
| 
 Свойство  | 
 Описание  | 
| 
 
  | 
 string Обязательное свойство. Текст, который следует показать и озвучить пользователю. Максимум 1024 символа. Может быть пустым ( Текст также используется, если у Алисы не получилось отобразить включенную в ответ
карточку (свойство  В тексте ответа можно указать переводы строк последовательностью «\n»,
например:   | 
| 
 
  | 
 string Ответ в формате TTS (text-to-speech). Максимум 1024 символа. Советы по использованию этого формата приведены в разделе Настройка генерации речи. Вы также можете проигрывать звуки из библиотеки Алисы и собственные звуки (теги   | 
| 
 
  | 
 object Описание карточки — сообщения с поддержкой изображений. Если приложению удается отобразить карточку для пользователя, свойство
 Содержимое зависит от типа карточки, указанного в поле  
  | 
| 
 array of objects Кнопки, которые следует показать пользователю. Все указанные кнопки выводятся после основного ответа Алисы, описанного в свойствах   | 
|
| 
 
  | 
 boolean Обязательное свойство. Признак конца разговора. Допустимые значения: 
  | 
| 
 
  | 
 object Директивы. Содержимое зависит от типа директивы. Возможное значение: 
  | 
| 
 object Обязательный параметр только для сценария утреннего шоу. Параметр историй утреннего шоу Алисы.  | 
response.buttons
Кнопки, которые следует показать пользователю. Все указанные кнопки выводятся после основного ответа Алисы, описанного в свойствах
response.text и response.card.
Кнопки можно использовать как релевантные ответу ссылки или подсказки для продолжения разговора.
| 
 Свойство  | 
 Описание  | 
| 
 
  | 
 string Обязательное свойство для каждой кнопки. Текст кнопки. Максимум 64 символа. Если для кнопки не указано свойство   | 
| 
 
  | 
 string URL, который должна открывать кнопка. Максимум 1024 байта. Если свойство   | 
| 
 
  | 
 object Произвольный JSON-объект, который Яндекс Диалоги должны отправить обработчику, если данная кнопка будет нажата. Максимум 4096 байт.  | 
| 
 
  | 
 boolean Признак того, что кнопку нужно убрать после следующей реплики пользователя. Допустимые значения: 
  | 
analytics
Объект с данными для аналитики. Доступен навыкам с подключенным параметром Настройки AppMetrica. Подробнее — в разделе о подключении AppMetrica.
| 
 Свойство  | 
 Описание  | 
| 
 array of objects Массив событий.  | 
analytics.events
Массив событий.
| 
 Свойство  | 
 Описание  | 
| 
 
  | 
 string Название события.  | 
| 
 
  | 
 objects JSON-объект для многоуровневых событий. Допустимо не более пяти уровней вложенности события. Многоуровневые события передаются через пары  Подробнее — в документации AppMetrica.  | 
Cтрока, выделяется кавычками, например "Hello world".
Целое или дробное число без кавычек, например 25.5.
Список пар "ключ": значение, разделенных запятой. Выделяется фигурными скобками {}.
{
  "name": "John",
  "surname": "Smith"
}
        
    Массив элементов, разделенных запятой. Элементом могут быть стандартные элементы JSON: строка, число, true, false, объект или массив. Массив выделяется квадратными скобками []:
"cities": ["Moscow", "Tokyo", "New York"] 
Логическое значение без кавычек: true (истина) или false (ложь).