#Вложения (ATTACH-блоки)

Расширенное оформление сообщения — карточки, таблицы поле-значение, изображения, файлы и разделители. Передаётся в поле attach вместе с message.

attach — массив блоков. Каждый блок: объект с одним ключом-типом. Текстовый блок MESSAGE принимает строку, остальные блоки — массив объектов с полями.

#Типы блоков

#MESSAGE — текст

Строка с текстом. Поддерживает BB-коды.

JSON
{ "MESSAGE": "Статус задачи обновлён" }

#GRID — таблица поле-значение

Поле Тип Описание
NAME string Название поля
VALUE string Значение поля
DISPLAY string Размещение: LINE (в строку), BLOCK, ROW
WIDTH integer Ширина столбца в пикселях
JSON
{ "GRID": [
  { "NAME": "Задача", "VALUE": "Подготовить отчёт", "DISPLAY": "LINE" },
  { "NAME": "Статус", "VALUE": "Выполнено", "DISPLAY": "LINE" }
] }
Поле Тип Описание
NAME string Заголовок ссылки
LINK string URL
DESC string Описание
PREVIEW string URL изображения-превью
JSON
{ "LINK": [{ "NAME": "Документация", "LINK": "https://example.com/docs", "DESC": "Справочник API" }] }

#IMAGE — изображение

Поле Тип Описание
LINK string URL изображения
NAME string Подпись
PREVIEW string URL превью
WIDTH integer Ширина в пикселях
HEIGHT integer Высота в пикселях
JSON
{ "IMAGE": [{ "LINK": "https://example.com/chart.png", "NAME": "График продаж", "WIDTH": 600, "HEIGHT": 400 }] }

#FILE — файл

Поле Тип Описание
LINK string URL файла
NAME string Имя файла
SIZE integer Размер в байтах
JSON
{ "FILE": [{ "LINK": "https://example.com/report.pdf", "NAME": "report.pdf", "SIZE": 2048576 }] }

#USER — карточка пользователя

Поле Тип Описание
NAME string Имя пользователя
AVATAR string URL аватара
LINK string URL профиля
JSON
{ "USER": [{ "NAME": "Иван Петров", "LINK": "https://example.com/u/42" }] }

#DELIMITER — линия-разделитель

Поле Тип Описание
SIZE integer Ширина в пикселях
COLOR string Цвет в шестнадцатеричном формате
JSON
{ "DELIMITER": [{ "SIZE": 200, "COLOR": "#c6c6c6" }] }

#Полный пример

JSON
{
  "message": "Отчёт по задаче",
  "attach": [
    { "MESSAGE": "[B]Статус задачи обновлён[/B]" },
    { "DELIMITER": [{}] },
    { "GRID": [
      { "NAME": "Задача", "VALUE": "Подготовить отчёт", "DISPLAY": "LINE" },
      { "NAME": "Статус", "VALUE": "Выполнено", "DISPLAY": "LINE" }
    ] },
    { "LINK": [{ "NAME": "Открыть задачу", "LINK": "https://example.com/tasks/42" }] }
  ]
}

#Смотрите также