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
rolein plaats vanpassword,sendChatMessageenclientSettingsOverride? - 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.