Как создать свои реакции для рассылок
Содержание рассылок настраивается через встроенный конструктор. Вы можете отправлять в них встроенные реакции бота — Текст, Изображения и Группы кнопок.
Если вам не хватает встроенных реакций, вы можете создать свои.
предупреждение
Возможность доступна только для канала Chat API.
В этой статье будет пошагово рассмотрен процесс создания пользовательской реакции, которая позволяет отправлять в рассылке видеозаписи.
- Подключите канал Chat API.
- Задайте настройки реакции в отдельном JSON-файле.
- Укажите путь к JSON-файлу в
chatbot.yaml
. - Запустите рассылку.
Шаг 1. Подключите канал Chat API
- Выберите нужный проект.
- На панели управления слева перейдите в Каналы.
- Следуйте инструкции по подключению канала.
Шаг 2. Задайте настройки реакции
- Перейдите в редактор кода.
- Создайте в директории
src
поддиректорию для реакций, напримерblocks
. - Создайте в директории
blocks
файлvideo.json
. - В файл запишите 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
- В конфигурационном файле
chatbot.yaml
создайте секциюcustomBlocks
, если ее еще нет. - Укажите в ней путь к JSON-файлу относительно корневой директории проекта.
customBlocks:
- src/blocks/video.json
предупреждение
Перед созданием рассылки сохраните изменения, сделанные в редакторе кода. Для этого нажмите .
Шаг 4. Запустите рассылку
- Перейдите в Рассылки → Создать рассылку.
- Выберите в Других реакциях блок, который вы создали, и настройте рассылку.
- Запустите рассылку.
подсказка
Когда начнется рассылка, в канал 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
}