Chapitre 22

Bibliothèques client et outils d’intégration

Les bibliothèques clientes masquent les détails du calcul du checksum, de la construction des requêtes HTTP et de l’analyse des réponses XML, vous permettant d’interagir avec l’API BigBlueButton via des méthodes typées dans votre langage de programmation préféré. Ce chapitre fournit un aperçu des bibliothèques disponibles, des outils d’intégration et des conseils pour choisir la bonne option pour votre projet.

Bibliothèques officielles

Les bibliothèques suivantes sont maintenues par le projet BigBlueButton lui-même ou par des contributeurs étroitement affiliés. Elles sont généralement bien maintenues et suivent les nouvelles fonctionnalités API au fur et à mesure de leur publication.

Bibliothèque Langage Dépôt Remarques
bigbluebutton-api-php PHP GitHub Bibliothèque PHP officielle. Utilisée par le plugin BBB de Moodle. Activement maintenue.
bigbluebutton-api-js JavaScript / Node.js GitHub Bibliothèque JavaScript officielle pour l’utilisation côté serveur de Node.js.

Bibliothèques communautaires

Ces bibliothèques sont développées et maintenues par la communauté. Leur qualité et leur fréquence de mise à jour varient — vérifiez toujours l’état de maintenance et la version de BBB prise en charge avant d’en adopter une.

Bibliothèque Langage Dépôt Remarques
bigbluebutton-api-python Python PyPI Bibliothèque Python maintenue par la communauté.
bigbluebutton-api-ruby Ruby RubyGems Du projet Mconf. Maintenue par la communauté.

Cette liste n’est pas exhaustive. D’autres projets communautaires existent et ne sont pas répertoriés ici. La maintenance et l’actualité de chaque bibliothèque relèvent de la responsabilité de leurs mainteneurs respectifs — vérifiez toujours qu’une bibliothèque prend en charge votre version cible de BBB avant de l’utiliser en production.

Outils d’intégration

Au-delà des bibliothèques clientes, plusieurs outils peuvent vous aider à tester, gérer et mettre à l’échelle des déploiements BigBlueButton :

Outil Description
API Mate (bigbluebutton.org) Outil web pour tester les appels à l’API BBB. bigbluebutton.org/api-mate/
API Mate (Mconf) Outil alternatif de test d’API basé sur le web. mconf.github.io/api-mate/
bbb-conf Outil CLI sur le serveur BBB. Affiche le secret, l’URL et l’état via bbb-conf --secret.
Greenlight Frontend BBB officiel construit avec Ruby on Rails. Utilise l’API en interne pour gérer les salles et les réunions.
Scalelite Équilibreur de charge pour plusieurs serveurs BBB. Transmet et répartit les appels API entre les instances disponibles.

Choisir une bibliothèque

Lors de l’évaluation d’une bibliothèque cliente pour votre projet, prenez en compte les critères suivants :

  • Prise en charge de la version BBB : La bibliothèque prend-elle en charge des fonctionnalités BBB 3.0 telles que role au lieu de password, sendChatMessage et clientSettingsOverride ?
  • Algorithme de checksum : La bibliothèque prend-elle en charge SHA-256 et SHA-512, ou seulement l’ancien SHA-1 ?
  • Prise en charge de POST : La bibliothèque peut-elle envoyer des corps XML (requis pour les téléversements de présentation et clientSettingsOverride) ?
  • État de maintenance : Quand a eu lieu le dernier commit ? Y a-t-il des problèmes non résolus sans aucune réponse ?
  • Prise en charge des webhooks : La bibliothèque propose-t-elle des fonctions utilitaires pour l’enregistrement des webhooks et la validation des callbacks ?

Si vous n’avez besoin que d’opérations de base comme créer et rejoindre des réunions, une bibliothèque riche en fonctionnalités n’est peut-être pas nécessaire. Une intégration personnalisée légère peut être plus simple à maintenir et plus facile à auditer.

Créer une intégration personnalisée

Si aucune des bibliothèques existantes ne répond à vos besoins, vous pouvez créer votre propre intégration avec n’importe quel langage capable d’effectuer des requêtes HTTP. La logique centrale se compose de trois éléments :

Fonction de checksum — calcule le hachage SHA-256 à partir du nom de l’appel API, de la chaîne de requête et du secret partagé. Reportez-vous au chapitre sur l’authentification par checksum pour des exemples d’implémentation dans plusieurs langages.

HTTP GET/POST — envoyez la requête à l’URL de l’API BBB avec la checksum ajoutée comme paramètre de requête.

Analyse XML — analysez la réponse XML et vérifiez le champ returncode pour SUCCESS ou FAILED.

Pour des intégrations simples qui n’ont besoin que de create et join, cela peut être réalisé en seulement quelques lignes de code — une bibliothèque complète n’est pas strictement nécessaire.

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

Générez toujours les appels API côté serveur. Le secret partagé ne doit jamais être exposé dans du code côté client tel que JavaScript exécuté dans le navigateur ou dans des applications mobiles.

Foire aux questions

Non. Une bibliothèque cliente est pratique mais non obligatoire. L’API utilise de simples requêtes HTTP GET/POST avec un paramètre checksum. Tout langage capable d’effectuer des requêtes HTTP, de calculer un hachage SHA-256 et d’analyser du XML peut interagir directement avec l’API.

La bibliothèque officielle bigbluebutton-api-php est le choix recommandé. Elle est activement maintenue par le projet BBB et utilisée par le plugin Moodle BigBlueButton.

Oui. La communauté a créé des bibliothèques pour des langages supplémentaires tels que Java, .NET et Go. Recherchez dans les dépôts de packages de votre langage ou consultez les forums de la communauté BigBlueButton pour obtenir des recommandations.

Utilisez API Mate, un outil web qui vous permet de construire et d’envoyer interactivement des appels API BBB. Vous saisissez l’URL de votre serveur et le secret partagé, sélectionnez un point de terminaison, remplissez les paramètres, et l’outil génère le checksum et envoie la requête pour vous.

Greenlight est une application web complète (frontend) pour gérer les salles et réunions BigBlueButton. Une bibliothèque cliente est un package de code que vous utilisez dans votre propre application pour effectuer des appels API par programmation. Greenlight utilise une bibliothèque cliente en interne.

Scalelite est un répartiteur de charge qui distribue les appels API sur plusieurs serveurs BigBlueButton. Vous en avez besoin lorsqu’un seul serveur ne peut pas gérer le nombre prévu de réunions ou de participants simultanés. Il agit comme un proxy transparent — votre application envoie les appels API à Scalelite, qui les achemine vers un serveur BBB disponible.