Руководства

Сообщения: карточки, кнопки, вложения

Сообщение бота — текст до 4000 символов, вложения, до 10 карточек (embeds) и до 5 рядов кнопок. Формат совместим с Discord.

curl -X POST https://voice-chat.ru/api/channels/$CHANNEL_ID/messages \
  -H "Authorization: Bot $VOICE_TOKEN" -H "Content-Type: application/json" \
  -d @message.json
message.json
{
  "content": "Голосование на сегодня",
  "embeds": [{
    "title": "Пицца?",
    "description": "Выберите вариант",
    "url": "https://example.com/poll",
    "color": 8150271,
    "author": { "name": "Опросник", "icon_url": "https://example.com/bot.png" },
    "fields": [
      { "name": "За", "value": "0", "inline": true },
      { "name": "Против", "value": "0", "inline": true }
    ],
    "footer": { "text": "Закроется в 18:00" },
    "timestamp": "2026-10-07T12:00:00.000Z"
  }],
  "components": [{
    "type": "row",
    "components": [
      { "type": "button", "style": "success", "label": "За", "custom_id": "vote_yes" },
      { "type": "button", "style": "danger", "label": "Против", "custom_id": "vote_no" },
      { "type": "button", "style": "link", "label": "Подробнее", "url": "https://example.com" }
    ]
  }]
}

Карточки (embeds)

ПолеТипОписание
titlestringДо 256 символов.
descriptionstringДо 4096 символов.
urlstringСсылка заголовка (http/https).
colorintegerЦвет полоски: 0…16777215 (0xRRGGBB).
timestampstringДата ISO 8601.
author{ name, url?, icon_url? }Автор вверху карточки.
footer{ text, icon_url? }Подпись внизу, до 2048 символов.
image, thumbnail{ url }Большая картинка и миниатюра (http/https).
fields{ name, value, inline? }[]До 25 полей: name до 256, value до 1024 символов.
Весь текст карточек одного сообщения — не больше 6000 символов. Карточки и кнопки могут отправлять только боты (и вебхуки — карточки).

Кнопки (components)

До 5 рядов { "type": "row", "components": [...] }, в ряду от 1 до 5 кнопок. Принимается и числовой формат Discord: ряд — type 1, кнопка — type 2, стили 1–5.

ПолеТипОписание
typeобяз."button"Тип элемента.
styleобяз.stringprimary, secondary, success, danger или link.
labelstringНадпись до 80 символов (нужна label или emoji).
emojistringЭмодзи на кнопке.
custom_idstringДо 100 символов, уникален в сообщении. Приходит боту при нажатии. Для всех стилей, кроме link.
urlstringТолько для link: адрес http/https, открывается у пользователя.
disabledbooleanНеактивная кнопка.

Вложения

Сначала загрузите файл (multipart/form-data, поле file, до 50 МБ), затем передайте ответ в attachments. До 10 вложений; исполняемые файлы запрещены, картинки и видео проходят проверку на 18+.

curl -X POST https://voice-chat.ru/api/uploads/attachment -H "Authorization: Bot $VOICE_TOKEN" -F file=@report.pdf
# → { "url": "/uploads/attachments/….pdf", "name": "report.pdf", "contentType": "application/pdf", "size": 48213 }

curl -X POST https://voice-chat.ru/api/channels/$CHANNEL_ID/messages \
  -H "Authorization: Bot $VOICE_TOKEN" -H "Content-Type: application/json" \
  -d '{ "content": "Отчёт за неделю", "attachments": [{ "url": "/uploads/attachments/….pdf", "name": "report.pdf" }] }'

Упоминания и ответы

  • @ник в тексте упоминает участника, @Роль — всех с ролью, @everyone и @here — всех на сервере.
  • replyTo — id сообщения, на которое бот отвечает.
  • Изменить можно только своё сообщение; удалить чужое — с правом «Управлять сообщениями».