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

Каналы

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

typeНазваниеОписание
0GUILD_TEXTОбычный текстовый канал гильдии
1DMЛичное сообщение 1-на-1
2GUILD_VOICEГолосовой канал гильдии
3GROUP_DMГрупповое ЛС (до 10 участников)
4GUILD_CATEGORYКатегория — визуальная группировка других каналов
5GUILD_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
}
ПолеТипОписание
idsnowflakeID канала
typeintegerСм. таблицу выше
guild_idsnowflake | nullID гильдии (нет для DM)
namestringИмя. Для текстовых каналов — [a-z0-9-_]
topicstring | nullОписание (до 1024)
positionintegerПорядок в сайдбаре
parent_idsnowflake | nullID категории-родителя
nsfwbooleanВозрастное ограничение
rate_limit_per_userintegerSlowmode в секундах (0 — выключен, до 21600)
last_message_idsnowflake | nullID последнего сообщения
permission_overwritesarrayСм. ниже
bitrateinteger(voice) Битрейт в bps
user_limitinteger(voice) Лимит участников (0 — без лимита)
rtc_regionstring | null(voice) Регион LiveKit

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

{
"id": "1424...",
"type": 0,
"allow": "2048",
"deny": "0"
}
ПолеОписание
idsnowflake роли или пользователя
type0 — роль, 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 на канал).

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