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
roleinvece dipassword,sendChatMessageeclientSettingsOverride? - 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.