Каналы
Раздел «Каналы» — подключение к голосовому/медиа-каналу, список присутствующих в нём участников и редактирование настроек уже существующего канала. Создание, удаление и перемещение каналов внутри группы описаны в разделе «Группы» — здесь только то, что относится к уже существующему каналу напрямую.
Все запросы этого раздела требуют заголовок Authorization: Bearer <accessToken>.
Объект ошибки
При любой ошибке вместо 200 OK возвращается default-ответ:
| Поле | Тип | Описание |
|---|---|---|
code | integer | Числовой код ошибки (google.rpc.Code). |
message | string | Человекочитаемое описание ошибки. |
details | array | Дополнительные структурированные детали ошибки (google.protobuf.Any); в большинстве случаев пуст. |
Подключиться к каналу
/v1/channels/{channelId}/connectПодключает текущего пользователя к голосовому/медиа-каналу и возвращает данные для подключения к медиасерверу (LiveKit) — точно тот же механизм, что используют боты (см. «Голос» в Bot API).
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
channelId | string | Идентификатор канала, к которому подключается пользователь. |
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
token | string | JWT для подключения к медиасерверу — привязан к конкретному пользователю и комнате (каналу), даёт права публиковать и подписываться на медиапотоки. |
serverUrl | string | URL медиасервера, к которому нужно подключаться с этим токеном. |
{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJ2aWRlbyI6eyJyb29tIjoiM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2Iiwicm9vbUpvaW4iOnRydWV9fQ.dGhpcyBpcyBub3QgcmVhbA",
"serverUrl": "wss://media.iopta.org"
}
Подключение отклоняется, если пользователь не состоит в группе канала или ему не разрешён доступ к этому каналу (права/оверрайды — см. «Права и роли»).
Ответ default (ошибка)
Стандартный объект ошибки — например, если канал не найден, группа канала не найдена, или пользователю не разрешено подключаться.
Изменить настройки канала
/v1/channels/{channelId}Обновляет имя, описание и (для голосовых каналов) лимит участников и битрейт.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
channelId | string | Идентификатор канала. |
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
name? | string | Новое имя канала. |
description? | string | Новое описание канала. |
userLimit? | integer | Лимит участников в голосовом канале — только для голосовых каналов. |
bitrate? | integer | Битрейт голосового канала — только для голосовых каналов. |
{
"channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "general-voice",
"userLimit": 10
}
Изменять настройки канала может только его создатель (creatorId). userLimit и bitrate можно
задавать только для голосовых каналов — на текстовом канале запрос будет отклонён.
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
success | boolean | Всегда true при успешном ответе. |
Ответ default (ошибка)
Стандартный объект ошибки — например, если канал не найден, вызывающий не
создатель канала, или userLimit/bitrate переданы для текстового канала.
Получить участников голосового канала
/v1/channels/{channelId}/usersВозвращает список пользователей, которые сейчас находятся в голосовом канале, с их состоянием микрофона/камеры/заглушки.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
channelId | string | Идентификатор голосового канала. |
Ответ 200 OK
| Поле | Тип | Описание |
|---|---|---|
users | array | Список объектов ChannelVoiceUser (см. ниже). |
Объект ChannelVoiceUser
| Поле | Тип | Описание |
|---|---|---|
user | User | Профиль участника. |
micIsEnabled | boolean | Включён ли микрофон. |
camIsEnabled | boolean | Включена ли камера. |
isDeafened | boolean | Отключён ли звук у самого участника (deafen). |
Ответ default (ошибка)
Стандартный объект ошибки.