Перейти к основному содержимому

Как создать свои реакции для рассылок

Содержание рассылок настраивается через встроенный конструктор. Вы можете отправлять в них встроенные реакции бота — Текст, Изображения и Группы кнопок.

Если вам не хватает встроенных реакций, вы можете создать свои.

предупреждение
Возможность доступна только для канала Chat API.

В этой статье будет пошагово рассмотрен процесс создания пользовательской реакции, которая позволяет отправлять в рассылке видеозаписи.

  1. Подключите канал Chat API.
  2. Задайте настройки реакции в отдельном JSON-файле.
  3. Укажите путь к JSON-файлу в chatbot.yaml.
  4. Запустите рассылку.

Шаг 1. Подключите канал Chat API

  1. Выберите нужный проект.
  2. На панели управления слева перейдите в Каналы.
  3. Следуйте инструкции по подключению канала.

Шаг 2. Задайте настройки реакции

  1. Перейдите в редактор кода.
  2. Создайте в директории src поддиректорию для реакций, например blocks.
  3. Создайте в директории blocks файл video.json.
  4. В файл запишите JSON-объект с полями ниже. Все поля обязательны, если не указано иное.

Настройки реакции

ПолеТипОписание
tagNameСтрокаНазвание реакции без пробелов.

Настройки параметров

ПолеТипОписание
parametersМассив объектовПараметры, которые можно передавать в реакцию.
parameters[].nameСтрокаИмя параметра.
parameters[].typeСтрокаТип параметра.
parameters[].requiredЛогическийЯвляется ли параметр обязательным.

Типы параметров

ТипОписаниеПример значения
stringСтрокаПривет, мир!
htmlСтрока с HTML-разметкойПривет, <b>мир</b>!
integerЧисло3.14
boolЛогический типfalse
stringArrayМассив строк["Привет", "мир"]
nameValueListМассив объектов с полями name и value[{"name": "hello", "value": "world"}]
jsonОбъект{"hello": "world"}

Настройки отображения

Поля ниже позволяют настроить отображение ваших реакций в интерфейсе рассылок. Все эти поля необязательны.

В качестве значения все поля принимают объект с ключами ru и eng. Значение ru используется при отображении интерфейса JAICP на русском языке, eng — на английском.

ПолеОписание
captionНазвание реакции. Если не указать значение, то в качестве названия будет использоваться имя реакции (поле tagName).
descriptionОписание реакции. Отображается как информационный блок в меню редактирования реакции.
hintПодсказка к реакции. Отображается как всплывающая подсказка при наведении на реакцию в списке.
parameters[].localizationНазвание параметра. Если не указать значение, то в качестве названия будет использоваться имя параметра в коде (поле name).
parameters[].descriptionОписание параметра. Отображается как всплывающая подсказка при наведении на название параметра.

Пример настроек

{
"tagName": "Video",
"caption": {
"ru": "Видео",
"eng": "Video"
},
"description": {
"ru": "Используйте этот блок, чтобы добавить видео к сообщению бота.",
"eng": "Use this block to add a video to the bot message."
},
"hint": {
"ru": "Добавить видео к сообщению",
"eng": "Add a video to the message"
},
"parameters": [
{
"name": "url",
"type": "string",
"required": true,
"localization": {
"ru": "Ссылка на видео",
"eng": "Video URL"
}
},
{
"name": "buttonText",
"type": "string",
"required": true,
"localization": {
"ru": "Текст кнопки под видео",
"eng": "The text of the button below the video"
}
},
{
"name": "buttonDeeplink",
"type": "string",
"required": true,
"localization": {
"ru": "Ссылка, куда ведет кнопка",
"eng": "Button deeplink"
}
},
{
"name": "buttonStartTime",
"type": "integer",
"required": true,
"localization": {
"ru": "Время появления кнопки (в секундах)",
"eng": "Button appearance time (in seconds)"
}
},
{
"name": "previewUrl",
"type": "string",
"required": true,
"localization": {
"ru": "Ссылка на превью",
"eng": "Preview URL"
}
}
]
}

Шаг 3. Укажите путь к JSON-файлу в chatbot.yaml

  1. В конфигурационном файле chatbot.yaml создайте секцию customBlocks, если ее еще нет.
  2. Укажите в ней путь к JSON-файлу относительно корневой директории проекта.
customBlocks:
- src/blocks/video.json
предупреждение
Перед созданием рассылки сохраните изменения, сделанные в редакторе кода. Для этого нажмите .

Шаг 4. Запустите рассылку

  1. Перейдите в РассылкиСоздать рассылку.
  2. Выберите в Других реакциях блок, который вы создали, и настройте рассылку.
  3. Запустите рассылку.
подсказка
Когда начнется рассылка, в канал Chat API будет передано ваше сообщение из рассылки и объект с типом customBlock со всеми настройками реакции.

Пример ответа:

{
"token": "abcde12345",
"clientId": "test",
"questionId": "96bca0e9-9df5-4e03-a8a4-4eb4aba57da5",
"data": {
"replies": [
{
"type": "text",
"text": "Текст",
"state": "/Match",
"lang": "ru"
},
{
"type": "buttons",
"buttons": [
{
"text": "Название кнопки",
"transition": "/SomeState"
}
],
"state": "/Match"
},
{
"type": "customBlock",
"blockName": "Видео",
"body": {
"url": "https://example.com",
"buttonText": "Название кнопки",
"buttonDeeplink": "https://example.com",
"buttonStartTime": "23",
"previewUrl": "https://example.com"
}
}
],
"answer": "Текст",
"newSessionStarted": false,
"debugData": [],
"endSession": false
},
"timestamp": "2023-04-19T12:47:35.260",
"blockForm": false
}