Capitolo 22

Librerie client e strumenti di integrazione

Le librerie client astraggono i dettagli del calcolo del checksum, della costruzione delle richieste HTTP e del parsing delle risposte XML, consentendoti di interagire con l'API BigBlueButton tramite metodi tipizzati nel linguaggio di programmazione che preferisci. Questo capitolo fornisce una panoramica delle librerie disponibili, degli strumenti di integrazione e indicazioni per scegliere l'opzione giusta per il tuo progetto.

Librerie ufficiali

Le seguenti librerie sono mantenute dal progetto BigBlueButton stesso o da contributori strettamente affiliati. In generale sono ben mantenute e seguono le nuove funzionalità API man mano che vengono rilasciate.

Libreria Linguaggio Repository Note
bigbluebutton-api-php PHP GitHub Libreria PHP ufficiale. Usata dal plugin BBB di Moodle. Mantenuta attivamente.
bigbluebutton-api-js JavaScript / Node.js GitHub Libreria JavaScript ufficiale per uso Node.js lato server.

Librerie della comunità

Queste librerie sono sviluppate e mantenute dalla comunità. La loro qualità e frequenza di aggiornamento variano: controlla sempre lo stato di manutenzione e la versione BBB supportata prima di adottarne una.

Libreria Linguaggio Repository Note
bigbluebutton-api-python Python PyPI Libreria Python mantenuta dalla community.
bigbluebutton-api-ruby Ruby RubyGems Dal progetto Mconf. Mantenuta dalla community.

Questo elenco non è esaustivo. Esistono ulteriori progetti della comunità che non sono elencati qui. La manutenzione e l'aggiornamento di ciascuna libreria sono responsabilità dei rispettivi manutentori: verifica sempre che una libreria supporti la versione BBB di destinazione prima di usarla in produzione.

Strumenti di integrazione

Oltre alle librerie client, diversi strumenti possono aiutarti a testare, gestire e scalare i deployment BigBlueButton:

Strumento Descrizione
API Mate (bigbluebutton.org) Strumento basato sul web per testare le chiamate API di BBB. bigbluebutton.org/api-mate/
API Mate (Mconf) Strumento alternativo basato sul web per testare le API. mconf.github.io/api-mate/
bbb-conf Strumento CLI sul server BBB. Mostra secret, URL e stato tramite bbb-conf --secret.
Greenlight Frontend BBB ufficiale costruito con Ruby on Rails. Usa internamente l'API per gestire stanze e riunioni.
Scalelite Bilanciatore di carico per più server BBB. Inoltra e distribuisce le chiamate API tra le istanze disponibili.

Scegliere una libreria

Quando valuti una libreria client per il tuo progetto, considera i seguenti criteri:

  • Supporto versione BBB: La libreria supporta funzionalità di BBB 3.0 come role invece di password, sendChatMessage e clientSettingsOverride?
  • Algoritmo di checksum: La libreria supporta SHA-256 e SHA-512, o solo il legacy SHA-1?
  • Supporto POST: La libreria può inviare corpi XML (richiesti per upload di presentazioni e clientSettingsOverride)?
  • Stato di manutenzione: Quando è stato effettuato l'ultimo commit? Ci sono problemi irrisolti senza alcuna risposta?
  • Supporto webhook: La libreria offre funzioni di supporto per la registrazione dei webhook e la validazione dei callback?

Se hai bisogno solo di operazioni di base come creare e partecipare a riunioni, una libreria completa potrebbe non essere necessaria. Un'integrazione personalizzata leggera può essere più semplice da mantenere e più facile da verificare.

Creare un'integrazione personalizzata

Se nessuna delle librerie esistenti soddisfa i tuoi requisiti, puoi creare la tua integrazione con qualsiasi linguaggio capace di effettuare richieste HTTP. La logica di base consiste in tre componenti:

Funzione checksum — calcola l'hash SHA-256 dal nome della chiamata API, dalla query string e dal shared secret. Fai riferimento al capitolo sull'autenticazione tramite checksum per esempi di implementazione in più linguaggi.

HTTP GET/POST — invia la richiesta all'URL API di BBB con il checksum aggiunto come parametro della query.

Parsing XML — analizza l'XML di risposta e controlla il campo returncode per SUCCESS o FAILED.

Per integrazioni semplici che richiedono solo create e join, questo può essere realizzato in poche righe di codice — una libreria completa non è strettamente necessaria.

# 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)

Genera sempre le chiamate API lato server. Il shared secret non deve mai essere esposto nel codice lato client come JavaScript in esecuzione nel browser o nelle applicazioni mobili.

Domande frequenti

No. Una libreria client è comoda ma non necessaria. L'API usa semplici richieste HTTP GET/POST con un parametro checksum. Qualsiasi linguaggio che possa effettuare richieste HTTP, calcolare un hash SHA-256 e analizzare XML può interagire direttamente con l'API.

La libreria ufficiale bigbluebutton-api-php è la scelta consigliata. È mantenuta attivamente dal progetto BBB ed è usata dal plugin Moodle BigBlueButton.

Sì. La community ha creato librerie per linguaggi aggiuntivi come Java, .NET e Go. Cerca nei repository di pacchetti per il tuo linguaggio o controlla i forum della community BigBlueButton per raccomandazioni.

Usa API Mate, uno strumento web che ti permette di costruire e inviare chiamate API BBB in modo interattivo. Inserisci l'URL del tuo server e il shared secret, selezioni un endpoint, compili i parametri e lo strumento genera il checksum e invia la richiesta per te.

Greenlight è un'applicazione web completa (frontend) per gestire stanze e riunioni BigBlueButton. Una libreria client è un pacchetto di codice che usi all'interno della tua applicazione per effettuare chiamate API in modo programmatico. Greenlight usa internamente una libreria client.

Scalelite è un load balancer che distribuisce le chiamate API su più server BigBlueButton. Ne hai bisogno quando un singolo server non può gestire il numero previsto di riunioni o partecipanti simultanei. Agisce come un proxy trasparente — la tua applicazione invia le chiamate API a Scalelite, che le instrada verso un server BBB disponibile.