Kapitel 22

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 role i stedet for password, sendChatMessage og clientSettingsOverride?
  • 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.

Ofte stillede spørgsmål

Nej. Et klientbibliotek er praktisk, men ikke påkrævet. API'et bruger simple HTTP GET/POST-requests med en checksum-parameter. Ethvert sprog, som kan lave HTTP-requests, beregne en SHA-256-hash og parse XML, kan interagere direkte med API'et.

Det officielle bigbluebutton-api-php-bibliotek er det anbefalede valg. Det vedligeholdes aktivt af BBB-projektet og bruges af Moodle BigBlueButton-plugin'et.

Ja. Community'et har oprettet biblioteker til yderligere sprog såsom Java, .NET og Go. Søg i pakke-repositorier for dit sprog eller tjek BigBlueButton-community-fora for anbefalinger.

Brug API Mate, et webbaseret værktøj, der lader dig konstruere og sende BBB API-kald interaktivt. Du indtaster din server-URL og shared secret, vælger et endpoint, udfylder parametre, og værktøjet genererer checksummen og sender requesten for dig.

Greenlight er en komplet webapplikation (frontend) til administration af BigBlueButton-rum og -møder. Et klientbibliotek er en kodepakke, som du bruger i din egen applikation til at foretage API-kald programmatisk. Greenlight bruger internt et klientbibliotek.

Scalelite er en load balancer, som fordeler API-kald på tværs af flere BigBlueButton-servere. Du har brug for den, når en enkelt server ikke kan håndtere det forventede antal samtidige møder eller deltagere. Den fungerer som en transparent proxy — din applikation sender API-kald til Scalelite, som videresender dem til en tilgængelig BBB-server.