getMeetings – Alle Meetings auflisten
Der Endpunkt getMeetings gibt eine Liste aller Meetings zurück, die derzeit auf dem BigBlueButton-Server existieren, einschließlich Teilnehmerdetails und Metadaten. Er ist das wichtigste Werkzeug zum Aufbau von Admin-Dashboards, zur Überwachung der Serverlast und zur Kapazitätsplanung über Ihre Infrastruktur hinweg.
Endpunkt
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Dieser Endpunkt erfordert keine zusätzlichen Parameter außer der Prüfsumme. Er gibt alle Meetings auf dem Server in einer einzigen Antwort zurück.
Parameter
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
checksum | String | Ja | — | Sicherheits-Prüfsumme, berechnet aus dem Namen des API-Aufrufs und dem Shared Secret. |
Beispielanfrage
https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Beispielantwort
Meetings gefunden
<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> Keine Meetings gefunden
<response>
<returncode>SUCCESS</returncode>
<meetings/>
<messageKey>noMeetings</messageKey>
<message>no meetings were found on this server</message>
</response> Antwortfelder pro Meeting
| Feld | Typ | Beschreibung |
|---|---|---|
meetingName | String | Anzeigename des Meetings. |
meetingID | String | Externe Meeting-ID wie bei der Erstellung angegeben. |
internalMeetingID | String | Intern vom Server erzeugte eindeutige ID. |
createTime | Number | Erstellungszeitstempel in Millisekunden seit der Unix-Epoche. |
createDate | String | Menschenlesbare Zeichenkette des Erstellungsdatums. |
voiceBridge | String | Voice-Bridge-Nummer für die Audiokonferenz. |
dialNumber | String | Einwahlnummer für das Meeting. |
attendeePW | String | Teilnehmerpasswort. Nur vorhanden, wenn gesetzt. Veraltet in BBB 3.0. |
moderatorPW | String | Moderatorpasswort. Nur vorhanden, wenn gesetzt. Veraltet in BBB 3.0. |
running | Boolean | Ob das Meeting derzeit aktiv ist. |
duration | Number | Maximale Dauer in Minuten. 0 bedeutet unbegrenzt. |
hasUserJoined | Boolean | Ob mindestens ein Benutzer dem Meeting beigetreten ist. |
recording | Boolean | Ob die Aufzeichnung für dieses Meeting aktiviert ist. |
hasBeenForciblyEnded | Boolean | Ob das Meeting über die API zwangsweise beendet wurde. |
startTime | Number | Startzeitstempel in Millisekunden seit der Unix-Epoche. |
endTime | Number | Endzeitstempel. 0, wenn das Meeting noch läuft. |
participantCount | Number | Aktuelle Anzahl der Teilnehmer im Meeting. |
listenerCount | Number | Anzahl der Teilnehmer im Nur-Zuhören-Modus. |
voiceParticipantCount | Number | Anzahl der Teilnehmer mit aktivem Audio. |
videoCount | Number | Anzahl der aktiven Webcams. |
maxUsers | Number | Maximal zulässige Anzahl an Teilnehmern. 0 bedeutet unbegrenzt. |
moderatorCount | Number | Anzahl der Moderatoren, die sich derzeit im Meeting befinden. |
attendees | List | Liste aller Teilnehmer mit Details wie userID, fullName, role und Medienstatus. |
metadata | Object | Alle benutzerdefinierten Metadaten-Parameter, die beim Aufruf von create übergeben wurden. |
isBreakout | Boolean | Ob es sich um einen Breakout-Raum handelt. |
parentMeetingID | String | Meeting-ID des übergeordneten Meetings. Nur bei Breakout-Räumen vorhanden. |
sequence | Number | Sequenznummer des Breakout-Raums. Nur bei Breakout-Räumen vorhanden. |
freeJoin | Boolean | Ob Teilnehmer diesen Breakout-Raum frei wählen können. Nur bei Breakout-Räumen vorhanden. |
breakoutRooms | List | Liste der Breakout-Raum-IDs. Nur vorhanden, wenn das Meeting aktive Breakout-Räume hat. |
Teilnehmerdetails
Jeder Eintrag in der Liste attendees enthält die folgenden Felder:
| Feld | Typ | Beschreibung |
|---|---|---|
userID | String | Eindeutige interne Benutzerkennung. |
fullName | String | Anzeigename des Teilnehmers. |
role | String | Rolle des Teilnehmers: MODERATOR oder VIEWER. |
isPresenter | Boolean | Ob der Teilnehmer derzeit der Präsentierende ist. |
isListeningOnly | Boolean | Ob der Teilnehmer im Nur-Zuhören-Modus beigetreten ist. |
hasJoinedVoice | Boolean | Ob der Teilnehmer der Sprachkonferenz beigetreten ist. |
hasVideo | Boolean | Ob der Teilnehmer eine aktive Webcam hat. |
clientType | String | Vom Teilnehmer verwendeter Client-Typ (z. B. HTML5). |
Die von getMeetings zurückgegebene Teilnehmerliste enthält alle Benutzer, die dem Meeting jemals beigetreten sind, einschließlich derjenigen, die es bereits verlassen haben. Dies unterscheidet sich von getMeetingInfo, das nur aktuell verbundene Benutzer zurückgibt. Berücksichtigen Sie dies bei der Berechnung aktiver Teilnehmerzahlen.
Häufige Anwendungsfälle
- Admin-Dashboard — Übersicht über alle laufenden Meetings und deren Teilnehmerzahlen anzeigen.
- Kapazitätsplanung — die Gesamtzahl aktiver Teilnehmer über alle Meetings auf dem Server berechnen.
- Monitoring — Meetings ohne Moderator oder Meetings mit Problemen identifizieren.
- Automatische Bereinigung — Meetings finden, die lange existiert haben, ohne Teilnehmer zu haben.
Tipps und Best Practices
Da getMeetings alle Meetings auf dem Server zurückgibt (nicht nur laufende), filtern Sie die Ergebnisse nach dem Feld running, wenn Sie nur aktive Meetings benötigen.
Die Antwort enthält sensible Informationen wie Teilnehmernamen, Benutzer-IDs und Passwörter. Rufen Sie diesen Endpunkt immer nur aus serverseitigem Code auf. Stellen Sie ihn niemals clientseitigen Anwendungen oder Endbenutzern zur Verfügung.
Für diesen Endpunkt gibt es keine Unterstützung für Paginierung. Auf Servern mit vielen gleichzeitigen Meetings kann die Antwort sehr groß werden und die Leistung beeinträchtigen. Erwägen Sie, die Ergebnisse zwischenzuspeichern, wenn Sie häufig pollen.
Häufig gestellte Fragen
running, wenn Sie nur aktive Meetings benötigen.getMeetings gibt eine Zusammenfassung aller Meetings auf dem Server zurück, während getMeetingInfo detaillierte Informationen zu einem einzelnen bestimmten Meeting zurückgibt. Außerdem enthält die Teilnehmerliste in getMeetings alle Benutzer, die jemals beigetreten sind (einschließlich derjenigen, die das Meeting verlassen haben), während getMeetingInfo nur aktuell verbundene Benutzer auflistet.isBreakout. Wenn es true ist, handelt es sich bei dem Meeting um einen Gruppenraum, und es enthält zusätzliche Felder wie parentMeetingID, sequence und freeJoin. Das übergeordnete Meeting enthält eine Liste breakoutRooms mit den IDs seiner Gruppenräume.getMeetings. Alle Meetings werden in einer einzigen Antwort zurückgegeben. Bei Servern mit sehr vielen Meetings sollten Sie Caching implementieren oder den Endpunkt seltener aufrufen, um die Serverlast zu reduzieren.