Формат ответа
Внимание
Время ожидания ответа от навыка — 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
(ложь).