Кнопки

  1. Кнопки после ответа
  2. Изображение, на которое можно нажать
  3. Кнопки под списком изображений
  4. Полезные ссылки

На устройствах с экраном вы можете предоставить пользователю дополнительные возможности для общения с навыком: давайте подсказки, побуждайте к действию, используйте кликабельные картинки.

В видеоуроке ниже разработчики рассказывают о реализации кнопок в ответе навыка.

Кнопки после ответа

Текстовые саджесты выводятся после основного ответа навыка, описанного в свойствах response.text и response.card. Нажатие кнопки может обозначать вариант развития диалога, активировать ссылку на страницу в интернете или выполнить заданный программный код. Вы также можете добавить в текст кнопки эмодзи.

Чтобы добавить кнопки, в ответе навыка задайте свойство response.buttons.

{
  "response": {
    ...
    "buttons": [
        {
            "title": "Надпись на кнопке 😀",
            "payload": {},
            "url": "https://example.com/",
            "hide": true
        }
    ],
    ...
  },
Описание элементов

buttons — кнопки, которые следует показать пользователю.

title — текст кнопки, обязательный атрибут. Если для кнопки не указано свойство url, текст кнопки будет отправлен навыку как реплика пользователя. Максимальная длина 64 символа.

url — адрес страницы, которую должна открыть кнопка. Максимальный объем ссылки 1024 байта.

payload — произвольный код на JSON, который Яндекс Диалоги должны отправить обработчику при нажатии. Максимальный объем кода 4096 байт.

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

  • false — кнопка должна оставаться активной (значение по умолчанию);
  • true — кнопку нужно скрывать после нажатия.
Пример ответа навыка

Изображение, на которое можно нажать

Чтобы изображение в ответе навыка реагировало на нажатие, задайте ему свойство response.card.button.

{
  "response": {
    ...
    "card": {
      "type": "BigImage",
      ...
      "button": {
        "text": "Надпись на кнопке",
        "url": "http://example.com/",
        "payload": {}
      }
    }
  },
Описание элементов

text — текст, который будет отправлен навыку по нажатию на изображение в качестве команды пользователя. Максимум 64 символа.

url — URL, который должен открываться по нажатию изображения. Максимум 1024 байта. Если свойство url не указано, навык получит значение свойства text.

payload — произвольный код на JSON, который Яндекс Диалоги должны отправить обработчику при нажатии. Максимальный объем кода 4096 байт.

Пример ответа навыка

Кнопки под списком изображений

Если вам нужно вывести кнопки внизу списка изображений, задайте свойство response.card.footer.button.

{
  "response": {
    ...
    "card": {
      "type": "ItemsList",
      ...
      "footer": {
        "text": "Текст блока под изображением.",
        "button": {
          "text": "Надпись на кнопке",
          "url": "https://example.com/",
          "payload": {}
        }
      }
    },
Описание элементов

footer — кнопки под списком изображений. Игнорируется для типа карточки ImageGallery.

text — текст первой кнопки, обязательное свойство. Максимальная длина 64 символа.

button — дополнительная кнопка для списка изображений.

text — текст кнопки, обязателен для каждой кнопки. Максимум 64 символа. Если для кнопки не указано свойство url, по нажатию текст кнопки будет отправлен навыку как реплика пользователя.

url — URL, который должен открываться по нажатию изображения. Максимум 1024 байта.

payload — произвольный код на JSON, который Яндекс Диалоги должны отправить обработчику при нажатии. Максимальный объем кода 4096 байт.

Пример ответа навыка