getMeetings – Список всех встреч
Конечная точка getMeetings возвращает список всех встреч, существующих в данный момент на сервере BigBlueButton, включая сведения об участниках и метаданные. Это основной инструмент для построения административных панелей, мониторинга нагрузки сервера и планирования ёмкости всей вашей инфраструктуры.
Конечная точка
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Эта конечная точка не требует никаких дополнительных параметров, кроме контрольной суммы. Она возвращает все встречи на сервере одним ответом.
Параметры
| Параметр | Тип | Обязательно | По умолчанию | Описание |
|---|---|---|---|---|
checksum | String | Да | — | Контрольная сумма безопасности , вычисленная из имени API-вызова и общего секрета. |
Пример запроса
https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Пример ответа
Встречи найдены
<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>Demo Meeting</meetingName>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>a0715c95...</internalMeetingID>
<createTime>1531241258036</createTime>
<createDate>Tue Jul 10 16:47:38 UTC 2018</createDate>
<voiceBridge>70066</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<attendeePW>ap</attendeePW>
<moderatorPW>mp</moderatorPW>
<running>true</running>
<duration>0</duration>
<hasUserJoined>true</hasUserJoined>
<recording>false</recording>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<startTime>1531241258074</startTime>
<endTime>0</endTime>
<participantCount>5</participantCount>
<listenerCount>2</listenerCount>
<voiceParticipantCount>3</voiceParticipantCount>
<videoCount>2</videoCount>
<maxUsers>0</maxUsers>
<moderatorCount>1</moderatorCount>
<attendees>
<attendee>
<userID>w_ftcrsyuh44oj</userID>
<fullName>Max Mustermann</fullName>
<role>MODERATOR</role>
<isPresenter>true</isPresenter>
<isListeningOnly>false</isListeningOnly>
<hasJoinedVoice>true</hasJoinedVoice>
<hasVideo>true</hasVideo>
<clientType>HTML5</clientType>
</attendee>
</attendees>
<metadata/>
<isBreakout>false</isBreakout>
</meeting>
</meetings>
</response> Встречи не найдены
<response>
<returncode>SUCCESS</returncode>
<meetings/>
<messageKey>noMeetings</messageKey>
<message>no meetings were found on this server</message>
</response> Поля ответа для каждой встречи
| Поле | Тип | Описание |
|---|---|---|
meetingName | String | Отображаемое имя встречи. |
meetingID | String | Внешний идентификатор встречи, указанный при создании. |
internalMeetingID | String | Внутренний уникальный идентификатор, сгенерированный сервером. |
createTime | Number | Метка времени создания в миллисекундах с начала эпохи Unix. |
createDate | String | Строка даты создания в человекочитаемом формате. |
voiceBridge | String | Номер голосового моста для аудиоконференции. |
dialNumber | String | Номер для подключения к встрече по телефону. |
attendeePW | String | Пароль участника. Присутствует только если задан. Устарело в BBB 3.0. |
moderatorPW | String | Пароль модератора. Присутствует только если задан. Устарело в BBB 3.0. |
running | Boolean | Указывает, активна ли встреча в данный момент. |
duration | Number | Максимальная продолжительность в минутах. 0 означает без ограничений. |
hasUserJoined | Boolean | Указывает, присоединился ли к встрече хотя бы один пользователь. |
recording | Boolean | Указывает, включена ли запись для этой встречи. |
hasBeenForciblyEnded | Boolean | Указывает, была ли встреча принудительно завершена через API. |
startTime | Number | Временная метка начала в миллисекундах с эпохи Unix. |
endTime | Number | Временная метка окончания. 0, если встреча все еще продолжается. |
participantCount | Number | Текущее количество участников во встрече. |
listenerCount | Number | Количество участников в режиме только прослушивания. |
voiceParticipantCount | Number | Количество участников с активным аудио. |
videoCount | Number | Количество активных веб-камер. |
maxUsers | Number | Максимально допустимое количество участников. 0 означает без ограничений. |
moderatorCount | Number | Количество модераторов, находящихся во встрече в данный момент. |
attendees | List | Список всех участников с такими сведениями, как userID, fullName, role и статус медиа. |
metadata | Object | Все пользовательские параметры метаданных, переданные при вызове create. |
isBreakout | Boolean | Указывает, является ли это групповой комнатой. |
parentMeetingID | String | Идентификатор встречи родительской встречи. Присутствует только для групповых комнат. |
sequence | Number | Порядковый номер групповой комнаты. Присутствует только для групповых комнат. |
freeJoin | Boolean | Указывает, могут ли участники свободно выбрать эту групповую комнату. Присутствует только для групповых комнат. |
breakoutRooms | List | Список идентификаторов групповых комнат. Присутствует только если у встречи есть активные групповые комнаты. |
Сведения об участнике
Каждая запись в списке attendees содержит следующие поля:
| Поле | Тип | Описание |
|---|---|---|
userID | String | Уникальный внутренний идентификатор пользователя. |
fullName | String | Отображаемое имя участника. |
role | String | Роль участника: MODERATOR или VIEWER. |
isPresenter | Boolean | Указывает, является ли участник в данный момент ведущим. |
isListeningOnly | Boolean | Указывает, присоединился ли участник в режиме только прослушивания. |
hasJoinedVoice | Boolean | Указывает, присоединился ли участник к голосовой конференции. |
hasVideo | Boolean | Указывает, есть ли у участника активная веб-камера. |
clientType | String | Тип клиента, используемого участником (например, HTML5). |
Список участников, возвращаемый getMeetings, включает всех пользователей, которые когда-либо присоединялись к встрече, включая тех, кто уже вышел. Это отличается от getMeetingInfo, который возвращает только пользователей, подключенных в данный момент. Учитывайте это при подсчете числа активных участников.
Распространённые сценарии использования
- Панель администратора — отображает обзор всех запущенных встреч и количество их участников.
- Планирование емкости — вычисляет общее количество активных участников во всех встречах на сервере.
- Мониторинг — помогает выявлять встречи без модератора или встречи, в которых возникли проблемы.
- Автоматическая очистка — позволяет находить встречи, которые существуют уже долгое время без участников.
Советы и лучшие практики
Поскольку getMeetings возвращает все встречи на сервере (а не только запущенные), фильтруйте результаты по полю running, если вам нужны только активные встречи.
Ответ содержит конфиденциальную информацию, такую как имена участников, идентификаторы пользователей и пароли. Всегда вызывайте этот endpoint только из серверного кода. Никогда не открывайте к нему доступ из клиентских приложений или для конечных пользователей.
Для этого endpoint не поддерживается пагинация. На серверах с большим количеством одновременных встреч ответ может стать очень большим и повлиять на производительность. Рассмотрите возможность кэширования результатов, если вы часто выполняете опрос.
Часто задаваемые вопросы
running, если вам нужны только активные встречи.getMeetings возвращает сводную информацию обо всех встречах на сервере, тогда как getMeetingInfo возвращает подробную информацию об одной конкретной встрече. Кроме того, список участников в getMeetings включает всех пользователей, которые когда-либо присоединялись (включая тех, кто уже вышел), тогда как getMeetingInfo перечисляет только подключённых в данный момент пользователей.isBreakout. Если оно равно true, встреча является групповой комнатой и будет содержать дополнительные поля, такие как parentMeetingID, sequence и freeJoin. Родительская встреча будет иметь список breakoutRooms, содержащий идентификаторы её групповых комнат.getMeetings. Все встречи возвращаются одним ответом. Для серверов с очень большим числом встреч рассмотрите возможность реализации кэширования или более редких вызовов конечной точки, чтобы снизить нагрузку на сервер.