Klientbiblioteker & integrationsværktøjer
Klientbiblioteker abstraherer detaljerne væk omkring checksum-beregning, konstruktion af HTTP-requests og parsing af XML-svar, så du kan interagere med BigBlueButton API'et gennem typede metoder i dit foretrukne programmeringssprog. Dette kapitel giver et overblik over tilgængelige biblioteker, integrationsværktøjer og vejledning i at vælge den rette løsning til dit projekt.
Officielle biblioteker
Følgende biblioteker vedligeholdes af selve BigBlueButton-projektet eller tæt tilknyttede bidragydere. De er generelt velvedligeholdte og følger nye API-funktioner, efterhånden som de udgives.
| Bibliotek | Sprog | Repository | Noter |
|---|---|---|---|
| bigbluebutton-api-php | PHP | GitHub | Officielt PHP-bibliotek. Bruges af Moodle BBB-plugin'et. Vedligeholdes aktivt. |
| bigbluebutton-api-js | JavaScript / Node.js | GitHub | Officielt JavaScript-bibliotek til server-side Node.js-brug. |
Fællesskabsbiblioteker
Disse biblioteker udvikles og vedligeholdes af fællesskabet. Deres kvalitet og opdateringsfrekvens varierer — kontrollér altid vedligeholdelsesstatus og understøttet BBB-version, før du tager et i brug.
| Bibliotek | Sprog | Repository | Noter |
|---|---|---|---|
| bigbluebutton-api-python | Python | PyPI | Community-vedligeholdt Python-bibliotek. |
| bigbluebutton-api-ruby | Ruby | RubyGems | Fra Mconf-projektet. Community-vedligeholdt. |
Denne liste er ikke udtømmende. Der findes yderligere fællesskabsprojekter, som ikke er opført her. Vedligeholdelsen og aktualiteten af hvert bibliotek er de respektive vedligeholderes ansvar — kontrollér altid, at et bibliotek understøtter din ønskede BBB-version, før du bruger det i produktion.
Integrationsværktøjer
Ud over klientbiblioteker kan flere værktøjer hjælpe dig med at teste, administrere og skalere BigBlueButton-deployments:
| Værktøj | Beskrivelse |
|---|---|
| API Mate (bigbluebutton.org) | Webbaseret værktøj til test af BBB API-kald. bigbluebutton.org/api-mate/ |
| API Mate (Mconf) | Alternativt webbaseret værktøj til test af API-kald. mconf.github.io/api-mate/ |
| bbb-conf | CLI-værktøj på BBB-serveren. Viser secret, URL og status via bbb-conf --secret. |
| Greenlight | Officiel BBB-frontend bygget med Ruby on Rails. Bruger API'et internt til at administrere rum og møder. |
| Scalelite | Load balancer til flere BBB-servere. Videresender og fordeler API-kald på tværs af tilgængelige instanser. |
Valg af bibliotek
Når du vurderer et klientbibliotek til dit projekt, bør du overveje følgende kriterier:
- BBB-versionsunderstøttelse: Understøtter biblioteket BBB 3.0-funktioner såsom
rolei stedet forpassword,sendChatMessageogclientSettingsOverride? - Checksum-algoritme: Understøtter biblioteket SHA-256 og SHA-512, eller kun den ældre SHA-1?
- POST-understøttelse: Kan biblioteket sende XML-bodies (påkrævet til præsentationsuploads og
clientSettingsOverride)? - Vedligeholdelsesstatus: Hvornår var sidste commit? Er der uløste issues uden nogen respons?
- Webhook-understøttelse: Tilbyder biblioteket hjælpefunktioner til registrering af webhooks og validering af callbacks?
Hvis du kun har brug for grundlæggende handlinger som at oprette og deltage i møder, er et fuldt udstyret bibliotek måske ikke nødvendigt. En letvægts, brugerdefineret integration kan være enklere at vedligeholde og lettere at auditere.
Opbygning af en brugerdefineret integration
Hvis ingen af de eksisterende biblioteker passer til dine krav, kan du bygge din egen integration med et hvilket som helst sprog, der understøtter HTTP. Kernelogikken består af tre komponenter:
Checksum-funktion — beregn SHA-256-hashen ud fra API-kaldets navn, query-strengen og shared secret. Se kapitlet om checksum-autentifikation for implementeringseksempler på flere sprog.
HTTP GET/POST — send anmodningen til BBB API-URL'en med checksum tilføjet som en query-parameter.
XML-parsing — parse svarets XML og kontrollér feltet returncode for SUCCESS eller FAILED.
For simple integrationer, der kun har brug for create og join, kan dette opnås med blot få linjer kode — et fuldt bibliotek er ikke strengt nødvendigt.
# 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) Generér altid API-kald på serversiden. Shared secret må aldrig eksponeres i klient-side-kode såsom JavaScript, der kører i browseren, eller i mobilapplikationer.