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

Каналы

Канал — контейнер для сообщений или голоса. Может находиться в гильдии или быть личным (DM / групповой DM).

type Название Описание
0 GUILD_TEXT Обычный текстовый канал гильдии
1 DM Личное сообщение 1-на-1
2 GUILD_VOICE Голосовой канал гильдии
3 GROUP_DM Групповое ЛС (до 10 участников)
4 GUILD_CATEGORY Категория — визуальная группировка других каналов
5 GUILD_ANNOUNCEMENT Канал-объявление (только для избранных ролей)
{
"id": "1465759683653402624",
"type": 0,
"guild_id": "1424883034267582464",
"position": 1,
"name": "general",
"topic": "Основной чат",
"nsfw": false,
"parent_id": "1424...",
"rate_limit_per_user": 0,
"permission_overwrites": [],
"last_message_id": "1465...",
"flags": 0
}
Поле Тип Описание
id snowflake ID канала
type integer См. таблицу выше
guild_id snowflake | null ID гильдии (нет для DM)
name string Имя. Для текстовых каналов — [a-z0-9-_]
topic string | null Описание (до 1024)
position integer Порядок в сайдбаре
parent_id snowflake | null ID категории-родителя
nsfw boolean Возрастное ограничение
rate_limit_per_user integer Slowmode в секундах (0 — выключен, до 21600)
last_message_id snowflake | null ID последнего сообщения
permission_overwrites array См. ниже
bitrate integer (voice) Битрейт в bps
user_limit integer (voice) Лимит участников (0 — без лимита)
rtc_region string | null (voice) Регион LiveKit

Право на уровне канала может переопределять право роли/участника. Каждый overwrite:

{
"id": "1424...",
"type": 0,
"allow": "2048",
"deny": "0"
}
Поле Описание
id snowflake роли или пользователя
type 0 — роль, 1 — пользователь
allow Битовая маска разрешённых прав (строка — это 64-битное число)
deny Битовая маска явно запрещённых прав

Резолюция прав участника в канале:

effective =
(@everyone.base
| role[1].base | role[2].base ...)
& ~(category.deny.everyone)
| category.allow.everyone
& ~(category.deny.role) | category.allow.role
& ~(category.deny.user) | category.allow.user
& ~(channel.deny.everyone) | channel.allow.everyone
& ~(channel.deny.role) | channel.allow.role
& ~(channel.deny.user) | channel.allow.user

Биты прав — см. Права доступа.

Получить объект канала.

Изменить канал. Требует MANAGE_CHANNELS.

Удалить канал. Требует MANAGE_CHANNELS. Возвращает объект удалённого канала.

История сообщений канала. Query-параметры:

  • around, before, after — привязки пагинации
  • limit — от 1 до 100, по умолчанию 50

Требует READ_MESSAGE_HISTORY.

Создать или изменить overwrite. Тело:

{ "type": 0, "allow": "2048", "deny": "0" }

Убрать overwrite.

Отправить событие «печатает». Fire-and-forget — других клиентов уведомит событием TYPING_START.

Список закреплённых сообщений (до 50 на канал).

Закрепить / открепить.