Kapitel 1

API-Ueberblick

Die BigBlueButton-API ist eine HTTP-basierte Schnittstelle, die es externen Anwendungen — wie Lernmanagementsystemen, Webportalen und benutzerdefinierten Integrationen — ermöglicht, Meetings programmgesteuert zu erstellen, zu steuern und zu überwachen. Alle API-Aufrufe werden mit einem checksum-Mechanismus gesichert, der auf einem shared secret basiert.

Wie die API funktioniert

Die BBB-API folgt einem einfachen Request-Response-Modell. Sie senden eine HTTPS-Anfrage an einen bestimmten Endpunkt auf Ihrem BigBlueButton-Server, und der Server antwortet mit einem XML-Dokument, das Erfolg oder Fehler anzeigt.

  • Protokoll: HTTPS (GET oder POST)
  • Basis-URL: https://<server>/bigbluebutton/api/<endpoint>?<parameters>&checksum=<hash>
  • Antwortformat: XML (mit wenigen Ausnahmen, die JSON zurückgeben)
  • Authentifizierung: Shared-secret-basierte checksum (kein OAuth, kein API-Schlüssel)

Endpunkt-Kategorien

Die API-Endpunkte sind in die folgenden Kategorien gegliedert:

Kategorie Endpunkte Beschreibung
Verwaltung create, join, end Meetings erstellen, beitreten und beenden
Ueberwachung isMeetingRunning, getMeetings, getMeetingInfo Laufende Meetings überwachen
Aufzeichnungen getRecordings, publishRecordings, deleteRecordings, updateRecordings, getRecordingTextTracks, putRecordingTextTrack Meeting-Aufzeichnungen verwalten
Webhooks hooks/create, hooks/list, hooks/destroy Echtzeit-Ereignisbenachrichtigungen
Nachrichten sendChatMessage Chat-Nachrichten senden BBB 3.0+
Sitzung getJoinUrl, feedback Sitzungsverwaltung BBB 3.0+

HTTP Methoden

Die meisten Endpunkte akzeptieren sowohl GET- als auch POST-Anfragen. Bei Verwendung von POST beachten Sie, dass die checksum aus der URL-query string berechnet wird, nicht aus dem Request-Body. Der POST-Body kann zusätzliche Daten wie Präsentations-XML oder Client-Settings-Overrides enthalten.

Auch beim Senden einer POST-Anfrage muss die checksum aus den query string-Parametern in der URL berechnet werden. Der Body-Inhalt wird nicht in die checksum-Berechnung einbezogen.

Antwortformat

Jede API-Antwort enthält mindestens die folgenden Felder:

<response>
  <returncode>SUCCESS</returncode>
  <!-- or -->
  <returncode>FAILED</returncode>
  <messageKey>errorKey</messageKey>
  <message>Human-readable error message</message>
</response>
Feld Beschreibung
returncode Immer SUCCESS oder FAILED
messageKey Maschinenlesbarer Fehlercode (nur bei Fehlern oder Warnungen vorhanden)
message Menschenlesbare Beschreibung des Fehlers oder der Warnung

API-Versionierung

Die BigBlueButton-API verwendet keine traditionelle URL-basierte Versionierung (keine Pfade wie /v1/, /v2/). Stattdessen werden neue Parameter abwärtskompatibel hinzugefügt, und veraltete Parameter werden entsprechend gekennzeichnet, aber nicht sofort entfernt.

BBB Version Wichtige API-Änderungen
2.2 Lock Einstellungen, allowModsToUnmuteUsers
2.4 logo, meetingLayout, allowModsToEjectCameras, Lern-Dashboard
2.5 disabledFeatures, SHA-384/SHA-512-Unterstützung, webhook eventID Filter
2.6 notifyRecordingIsOn, presentationUploadExternalUrl, Dunkelmodus
2.7 preUploadedPresentation (einzelne URL), Aufzeichnungs-pagination
3.0 sendChatMessage, getJoinUrl, feedback, pluginManifests, clientSettingsOverride, role ersetzt password auf join

Nicht dokumentierte Endpunkte

Die folgenden Endpunkte existieren im BigBlueButton-Quellcode, sind aber nicht in der offiziellen Dokumentation enthalten. Sie werden intern verwendet und können sich ohne Vorankündigung ändern.

Endpunkt Methode Beschreibung Status
/api/stuns GET POST Gibt die STUN/TURN-Serverkonfiguration für WebRTC-Verbindungen zurück Undocumented
/api/signOut GET POST Sitzung beenden / Benutzer abmelden Undocumented
/api/guestWait GET Lobby-Status für Gäste abfragen, die auf die Genehmigung durch einen Moderator warten Undocumented
/api/getSessions GET POST Sitzungsinformationen abrufen Undocumented
/api/learningDashboard GET POST Lernanalyse-Daten abrufen Undocumented

GraphQL Mutations (Aktionen im Meeting)

Seit BBB 3.0 werden die meisten Echtzeitaktionen innerhalb eines Meetings über GraphQL-Mutations über WebSocket abgewickelt. Diese werden intern vom BBB-HTML5-Client verwendet und sind nicht Teil der klassischen REST-API.

Kategorie Anzahl Beispiele
Chat 9 chatSendMessage, chatDeleteMessage, chatEditMessage
Benutzerverwaltung 26 userSetMuted, userSetRole, userEjectFromMeeting
Präsentation 11 presentationSetCurrent, presentationSetPage
Meeting-Steuerung 8 meetingEnd, meetingRecordingSetStatus
Gruppenräume 7 breakoutRoomCreate, breakoutRoomEndAll
Umfragen 4 pollCreate, pollSubmitUserVote, pollPublishResult
Timer 8 timerStart, timerStop, timerReset
Plugins 8 pluginDataChannelPushEntry, pluginPersistEvent

Die GraphQL-Schicht ist für die interne Nutzung durch den Client gedacht und bietet keine stabile öffentliche API. Mutations und ihre Parameter können sich zwischen BBB-Versionen ohne Vorankündigung ändern.

Voraussetzungen

Bevor Sie die BigBlueButton-API nutzen können, stellen Sie sicher, dass Folgendes vorhanden ist:

Ein laufender BigBlueButton-Server (Version 3.0 empfohlen)

Das Shared Secret (auch "security salt" genannt), konfiguriert in /etc/bigbluebutton/bbb-web.properties

HTTPS-Zugriff auf den Server

Eine serverseitige Anwendung, die die API-Aufrufe erzeugt — das shared secret darf niemals clientseitig offengelegt werden

Legen Sie das shared secret niemals in clientseitigem Code offen (JavaScript, mobile Apps). Alle API-Aufrufe müssen serverseitig erzeugt werden, um unbefugten Zugriff auf Ihren BigBlueButton-Server zu verhindern.

bbbserver.de — IntegrationAPI

Ihre API-URL und das shared secret sind im bbbserver-Admin-Panel unter Customer Settings → IntegrationAPI verfügbar. Das IntegrationAPI kann dort aktiviert oder deaktiviert werden.

Plugin Kompatibilität

Die folgenden Plattformen funktionieren sofort — geben Sie einfach die API-URL und das shared secret ein:

  • Moodle (BigBlueButtonBN)
  • ILIAS
  • Nextcloud
  • WordPress
  • Greenlight

Unterschiede zur Standard-API

Thema Detail
maxParticipants / duration Wird zur Kapazitätsreservierung verwendet, nicht nur als Begrenzung. Standardwerte, wenn nicht angegeben: 5 Teilnehmer, 60 Minuten.
duration Verhalten Beendet Meetings NICHT automatisch — wird nur für die Kapazitätsplanung verwendet.
Zusätzlicher Parameter deactivateBbbserverDefaultChatTexts — für white-labeling-Zwecke.
Nicht verfügbare Endpunkte updateRecordings, getDefaultConfigXML, setConfigXML, getRecordingTextTracks, putRecordingTextTracks
Webhooks Nur meetingspezifisch, mit Datenschutz-Verschleierung.
Ratenbegrenzungen Keine Rate Limits auf der IntegrationAPI.

Zusätzlich zur IntegrationAPI bietet bbbserver.de eine separate System API mit plattformspezifischen Funktionen wie Kontoverwaltung und Nutzungsstatistiken. Die System API ist nicht BBB-kompatibel und wird in diesem Leitfaden nicht behandelt.

Häufig gestellte Fragen

Die API verwendet einen shared-secret-basierten checksum-Mechanismus. Jede Anfrage muss einen Parameter checksum enthalten, der durch Hashing des API-Aufrufnamens, des query string und des shared secret berechnet wird. Es gibt keine OAuth- oder API-Schlüssel-Authentifizierung.

Das Standard-Antwortformat ist XML. Einige wenige spezifische Endpunkte können JSON zurückgeben, aber die große Mehrheit der API-Aufrufe gibt XML-Dokumente mit einem Feld returncode zurück, das SUCCESS oder FAILED anzeigt.

Nein, die BigBlueButton-API verwendet keine URL-basierte Versionierung. Neue Parameter werden auf abwärtskompatible Weise hinzugefügt, und veraltete Parameter werden gekennzeichnet, aber nicht sofort entfernt. Sie sollten immer das Changelog für Ihre BBB-Version prüfen.

Nein. Die GraphQL-Schicht ist für die interne Nutzung durch den BBB-HTML5-Client konzipiert. Sie bietet keine stabile öffentliche API, und Mutations können sich zwischen Versionen ohne Vorankündigung ändern. Verwenden Sie für alle externen Integrationen die REST-API.

Das bbbserver.de IntegrationAPI ist ein Proxy, der die Standard-BBB-API vollständig repliziert. Externe Anwendungen verbinden sich damit, als würden sie mit einem einzelnen BBB-Server kommunizieren. Die Hauptunterschiede sind Kapazitätsreservierung über maxParticipants/duration, einige nicht verfügbare Endpunkte und meetingspezifische webhook-Einschränkungen.

BigBlueButton 2.5 und höher unterstützt SHA-256, SHA-384 und SHA-512 für die Berechnung der checksum. Frühere Versionen verwenden SHA-1 oder SHA-256. Aus Sicherheitsgründen wird empfohlen, SHA-256 oder höher zu verwenden.