Hoofdstuk 22

Clientbibliotheken & integratietools

Clientbibliotheken abstraheren de details van checksum-berekening, HTTP-requestconstructie en XML-responseparsing, zodat je met de BigBlueButton-API kunt werken via getypeerde methoden in de programmeertaal van jouw keuze. Dit hoofdstuk biedt een overzicht van beschikbare bibliotheken, integratietools en richtlijnen voor het kiezen van de juiste optie voor je project.

Officiële bibliotheken

De volgende bibliotheken worden onderhouden door het BigBlueButton-project zelf of door nauw verbonden bijdragers. Ze zijn over het algemeen goed onderhouden en volgen nieuwe API-functies zodra die worden uitgebracht.

Bibliotheek Taal Repository Opmerkingen
bigbluebutton-api-php PHP GitHub Officiële PHP-bibliotheek. Gebruikt door de Moodle BBB-plugin. Actief onderhouden.
bigbluebutton-api-js JavaScript / Node.js GitHub Officiële JavaScript-bibliotheek voor server-side gebruik van Node.js.

Communitybibliotheken

Deze bibliotheken worden door de community ontwikkeld en onderhouden. Hun kwaliteit en updatefrequentie variëren — controleer altijd de onderhoudsstatus en de ondersteunde BBB-versie voordat je er een adopteert.

Bibliotheek Taal Repository Opmerkingen
bigbluebutton-api-python Python PyPI Door de community onderhouden Python-bibliotheek.
bigbluebutton-api-ruby Ruby RubyGems Van het Mconf-project. Door de community onderhouden.

Deze lijst is niet uitputtend. Er bestaan extra communityprojecten die hier niet worden vermeld. Het onderhoud en de actualiteit van elke bibliotheek vallen onder de verantwoordelijkheid van de respectieve maintainers — controleer altijd of een bibliotheek je doel-BBB-versie ondersteunt voordat je die in productie gebruikt.

Integratietools

Naast clientbibliotheken kunnen verschillende tools je helpen bij het testen, beheren en opschalen van BigBlueButton-deployments:

Tool Beschrijving
API Mate (bigbluebutton.org) Webgebaseerde tool voor het testen van BBB API-aanroepen. bigbluebutton.org/api-mate/
API Mate (Mconf) Alternatieve webgebaseerde API-testtool. mconf.github.io/api-mate/
bbb-conf CLI-tool op de BBB-server. Toont secret, URL en status via bbb-conf --secret.
Greenlight Officiële BBB-frontend gebouwd met Ruby on Rails. Gebruikt de API intern om ruimtes en vergaderingen te beheren.
Scalelite Load balancer voor meerdere BBB-servers. Stuurt API-aanroepen door en verdeelt ze over beschikbare instanties.

Een bibliotheek kiezen

Houd bij het evalueren van een clientbibliotheek voor je project rekening met de volgende criteria:

  • Ondersteuning voor BBB-versies: Ondersteunt de bibliotheek BBB 3.0-functies zoals role in plaats van password, sendChatMessage en clientSettingsOverride?
  • Checksum-algoritme: Ondersteunt de bibliotheek SHA-256 en SHA-512, of alleen het verouderde SHA-1?
  • POST-ondersteuning: Kan de bibliotheek XML-bodies versturen (vereist voor presentatie-uploads en clientSettingsOverride)?
  • Onderhoudsstatus: Wanneer was de laatste commit? Zijn er onbeantwoorde problemen zonder enige reactie?
  • Webhook-ondersteuning: Biedt de bibliotheek helperfuncties voor webhook-registratie en callback-validatie?

Als je alleen basisbewerkingen nodig hebt, zoals het aanmaken van en deelnemen aan vergaderingen, is een bibliotheek met alle functies mogelijk niet nodig. Een lichte maatwerkintegratie kan eenvoudiger te onderhouden en makkelijker te auditen zijn.

Een maatwerkintegratie bouwen

Als geen van de bestaande bibliotheken aan je eisen voldoet, kun je je eigen integratie bouwen met elke taal die HTTP ondersteunt. De kernlogica bestaat uit drie componenten:

Checksum-functie — bereken de SHA-256-hash uit de naam van de API-call, de querystring en het shared secret. Raadpleeg het hoofdstuk over checksum-authenticatie voor implementatievoorbeelden in meerdere talen.

HTTP GET/POST — stuur het verzoek naar de BBB API-URL met de checksum toegevoegd als queryparameter.

XML-parsing — parse de response-XML en controleer het veld returncode op SUCCESS of FAILED.

Voor eenvoudige integraties die alleen create en join nodig hebben, kan dit in slechts een paar regels code worden gerealiseerd — een volledige bibliotheek is niet strikt noodzakelijk.

# Minimal example: create + join (pseudocode)

secret = "replace-with-secret"
base   = "https://api-guide.bbbserver.com/bigbluebutton/api"

# 1. Build query string
params = "name=Demo&meetingID=replace-with-meeting-id&attendeePW=replace-with-password&moderatorPW=replace-with-password"

# 2. Compute checksum
checksum = sha256("create" + params + secret)

# 3. Send request
response = http_get(base + "/create?" + params + "&checksum=" + checksum)

# 4. Parse XML response
if parse_xml(response).returncode == "SUCCESS":
    # Build join URL for a moderator
    join_params = "fullName=Admin&meetingID=demo-1&role=MODERATOR"
    join_checksum = sha256("join" + join_params + secret)
    redirect_to(base + "/join?" + join_params + "&checksum=" + join_checksum)

Genereer API-calls altijd server-side. Het shared secret mag nooit worden blootgesteld in client-side code zoals JavaScript die in de browser draait of in mobiele applicaties.

Veelgestelde vragen

Nee. Een clientbibliotheek is handig maar niet vereist. De API gebruikt eenvoudige HTTP-GET/POST-requests met een checksum-parameter. Elke taal die HTTP-requests kan doen, een SHA-256-hash kan berekenen en XML kan parsen, kan direct met de API communiceren.

De officiële bigbluebutton-api-php-bibliotheek is de aanbevolen keuze. Deze wordt actief onderhouden door het BBB-project en wordt gebruikt door de Moodle BigBlueButton-plugin.

Ja. De community heeft bibliotheken gemaakt voor extra talen zoals Java, .NET en Go. Zoek in pakketrepositories voor jouw taal of bekijk de BigBlueButton-communityforums voor aanbevelingen.

Gebruik API Mate, een webgebaseerde tool waarmee je BBB-API-calls interactief kunt opbouwen en verzenden. Je voert je server-URL en shared secret in, kiest een endpoint, vult parameters in en de tool genereert de checksum en verstuurt de request voor je.

Greenlight is een complete webapplicatie (frontend) voor het beheren van BigBlueButton-ruimtes en vergaderingen. Een clientbibliotheek is een codepakket dat je binnen je eigen applicatie gebruikt om programmatisch API-calls te doen. Greenlight gebruikt intern een clientbibliotheek.

Scalelite is een load balancer die API-calls verdeelt over meerdere BigBlueButton-servers. Je hebt dit nodig wanneer één enkele server je verwachte aantal gelijktijdige vergaderingen of deelnemers niet aankan. Het werkt als een transparante proxy — je applicatie stuurt API-calls naar Scalelite, dat ze doorstuurt naar een beschikbare BBB-server.