ym88659208ym87991671
Выбор элемента интерфейса | Документация SmartMarket
Skip to main content

Выбор элемента интерфейса

Смартапы типа Canvas App поддерживают голосовое взаимодействие с элементами интерфейса. Пользователь может выбрать карточку, назвав ее содержимое.

Для этого с фронтенда смартапа надо отправить ассистенту объект item_selector с описанием элементов интерфейса:

{
"messageId": 1628668071,
"sessionId": "adsf-e3bc-sdfdsf-adeb-asdf",
"messageName": "CLASSIFY_TEXT",
"payload": {
"meta": {
"item_selector": {
"ignored_words": [
"добавь",
"удали"
],
"items": [
{
"id": "c09a2d2a-e676-11e8-80c5-0cc47a817925",
"number": 1,
"title": "Вода с газом",
"aliases": ["Вода"],
"visible": true,
"action": {
"action_id": "open_product",
"product_id": "100024263387"
}
},
{
"id": "21ff402f-fa98-11e8-80c5-0cc47a817925",
"number": 2,
"title": "Яблочный сок",
"aliases": ["Сок"],
"visible": true,
"server_action": {
"action_id": "buy_product",
"product_id": "100024263387"
}
}
]
}
}
}
},
"uuid": {
"userId": "e6a1be42-bde8-40e0-8d64-814adbaa9558",
"sub": "asldhfjkasdhfjkasdhfkj",
"userChannel": "B2C"
}
}
note

Каждый из объектов массива items может содержать произвольные поля, необходимые для работы смартапа.

Описание полей item_selector:

НаименованиеОписание

ignored_words

array of strings

Массив слов, которые будут проигнорированы при распознавании реплик пользователя.

Пример: "удали"

items

array of objects

Массив объектов, описывающих элементы интерфейса смартапа

    id

     Обязательное

string

Уникальный идентификатор контента

    number

integer

Номер элемента интерфейса, присвоенный смартапом

    title

string

Наименование объекта, отображающегося в элементе интерйеса. Например «Вода без газа», «Мультфильмы»

    visible

boolean

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

    aliases

array of strings

Массив слов, которые облегчат распознавание содержимого элемента интерфейса

    action

object

Действие, которое надо обработать во фронтенде смартапа

    server_action

object

Действие, которое надо обработать в сценарии (в бэкенде смартапа)

Ответ ассистента

Когда пользователь произнесет запрос, соответствующий содержимому элемента интерфейса смартапа, ассистент отправит сообщение MESSAGE_TO_SKILL, которое будет содержать объект selected_item:

{
"messageName": "MESSAGE_TO_SKILL",
"payload": {
"selected_item": {
"index": 0, // порядковый номер элемента во входящем массиве items_selector, начиная с 0
"title": "Вода с газом"
}
}
}
note

Если пользователь ничего не выбрал, объект selected_item будет пустым.

Смартап должен обработать сообщение в сценарии или во фронтенде смартапа, в результате чего пользователь должен увидеть нужную информацию.

Обновлено 20 апреля 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней