Создаем карточки на JavaScript
Используя блок JS код, вы можете предоставить ответ ассистента в виде карточки.
Карточки помогают смартапам организовать сложную информацию на экране ассистента. Внешний вид карточек отличается в зависимости от типа смартапа (Chat App или Canvas App), а также в зависимости от типа поверхности (SberBox или приложение Салют). Карточки недоступны в проектах SaluteBot.
Для отправки доступны четыре вида карточек:
card— простая карточка;cardList— карточка список ячеек;gallery_card— карточка галерея.
Больше примеров отображения и элементов каждого из типа крточек вы найдете в документации SmartApp API.
Отправка карточек
Отправка с помощью сообщений типа card и cardList
Для отправки карточек card и cardList нужно передать в массив $response.replies объект, описывающий карточку:
// Переменная, содержащая объект с описанием карточки
var reply = {
// Синтаксис карточки
};
// Инициализация массива
$response.replies = $response.replies || [];
// Отправка переменной в массив
$response.replies.push(reply);
Пустое поле text в элементах ведет к некорректной работе карточки.
Описание объекта card
Ответ ассистента в виде карточки.
{
"type": "card",
"title": "title",
"description": "descr",
"imageUrl": "веб-адрес изображения из раздела Контент",
"hash": "хэш картинки из раздела Контент",
"button": {
"text": "text",
"url": "url"
},
"auto_listening": false
}
По умолчанию: card
Тип элемента
Обязательное поле, которое содержит текст заголовка карточки. Позволяет использовать переменные сценария.
Текст описание соответ ствющей ячейки списка.
Описание карточки, которое отображается под заголовком. Рекомендуемая длина описания — менее 50 символов. Позволяет использовать переменные сценария.
Cсылка на изображение из раздела Контент.
хэш изображения из раздела Контент.
action
object
Действие, которе выполнится при нажатии на ячейку.
Текст, который передастся при нажатии на ячейку.
Имя стейта к которому должен перейти сценарий смартапа при нажатии на карточку.
button
object
Кнопка, которая отображается в карточке.
Текст кнопки.
Веб-адрес, на который выполняется переход по нажатию кнопки.
Указывает будет ли смартап слушать ответ пользователя после ответа ассистента.
Описание объекта cardList
Ответ ассистента в виде карточки со списком ячеек.
{
"type": "cardList",
"title": "Заголовок карточки",
"subtitle": "Описание",
"cells": [
{
"title": "Заголовок ячейки 1",
"subtitle": "Описание ячейки 1",
"value": "Значение, которое отображается в правой части ячейки 1. Рекомендуемая длина менее 5 символов.",
"iconUrl": "https://example.ru/images/image.png",
"hash": "3a74d5abfc671f47e45d336ed4d41026",
"action": {
"url": "Веб-адрес, который откроется при нажатии ячейки"
}
},
{
"title": "Заголовок ячейки 2",
"subtitle": "Описание ячейки 2",
"value": "Значение, которое отображается в правой части ячейки 2. Рекомендуемая длина менее 5 символов.",
"iconUrl": "https://example.ru/images/image.png",
"hash": "3a74d5abfc671f47e45d336ed4d41026",
"action": {
"text": "Текст, который отправится при нажатии ячейки"
}
},
],
"buttons": [
{
"text": "Название кнопки карточки",
"url": "Веб-адрес, который откроется при нажатии кнопки"
}
],
"auto_listening": false
}
Array [
simple_left_view;fast_answer_left_view—
paddings
object
Параметры отступов
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа слева
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа сверху
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа справа
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа снизу
По умолчанию: false
Указывает, что карточка может отображаться как неактивная
Тип карточки
cells
object[]
Массив ячеек карточки
anyOf
paddings
object
Параметры отступов
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа слева
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа сверху
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа справа
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер отступа с низу
left
object
Левый элемент ячейки
Возможные значения: [simple_left_view, fast_answer_left_view]
Тип левого элемента ячейки, который определяет содержимое ячейки. Возможные значения:
icon
object
Параметры иконки
address
object
required
Адрес иконки
size
object
required
Размер иконки
Возможные значения: [xsmall, small, medium, large, xlarge]
Ширина иконки
Возможные значения: [xsmall, small, medium, large, xlarge]
Высота иконки
margins
object
Параметры полей
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля слева
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля сверху
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля справа
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля снизу
texts
object
title
object
Возможные значения: non-empty
Текст, который нужно отобразить. Поле не может быть пустым
Возможные значения: [headline1, headline2, headline3, title1, title2, body1, body2, body3, text1, paragraphText1, paragraphText2, footnote1, footnote2, button1, button2, caption]
Стиль текста. Посмотреть примеры отображения стилей можно в документации дизайн-системы Plasma
Возможные значения: [default, secondary, tertiary, inverse, brand, warning, critical, link]
Цвет текста
margins
object
Параметры полей
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля слева
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля сверху
Возможные значения: [0x, 1x, 2x, 4x, 5x, 6x, 8x, 9x, 10x, 12x, 16x]
По умолчанию: 0x
Размер поля справа