Глава 9 GET POST

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 перечисляет только подключённых в данный момент пользователей.

Нет. Эти поля включаются в ответ только если они были заданы при создании встречи и не пусты. Начиная с BigBlueButton 3.0 эти поля устарели и часто отсутствуют.

Проверьте поле isBreakout. Если оно равно true, встреча является групповой комнатой и будет содержать дополнительные поля, такие как parentMeetingID, sequence и freeJoin. Родительская встреча будет иметь список breakoutRooms, содержащий идентификаторы её групповых комнат.

Нет. API BigBlueButton не поддерживает пагинацию для getMeetings. Все встречи возвращаются одним ответом. Для серверов с очень большим числом встреч рассмотрите возможность реализации кэширования или более редких вызовов конечной точки, чтобы снизить нагрузку на сервер.
Руководство по API BigBlueButton