Chapitre 1

Vue d’ensemble de l’API

L'API BigBlueButton est une interface basée sur HTTP qui permet à des applications externes — telles que des systèmes de gestion de l'apprentissage, des portails web et des intégrations personnalisées — de créer, contrôler et surveiller des réunions par programmation. Tous les appels API sont sécurisés à l'aide d'un mécanisme checksum basé sur un shared secret.

Fonctionnement de l'API

L'API BBB suit un modèle simple requête-réponse. Vous envoyez une requête HTTPS à un point de terminaison spécifique sur votre serveur BigBlueButton, et le serveur répond avec un document XML indiquant le succès ou l'échec.

  • Protocole : HTTPS (GET ou POST)
  • URL de base : https://<server>/bigbluebutton/api/<endpoint>?<parameters>&checksum=<hash>
  • Format de réponse : XML (avec quelques exceptions qui renvoient JSON)
  • Authentification : Shared-secret basée sur checksum (pas de OAuth, pas de clé API)

Catégories de points de terminaison

Les points de terminaison de l'API sont organisés dans les catégories suivantes :

Catégorie Points de terminaison Description
Administration create, join, end Créer, rejoindre et terminer des réunions
Surveillance isMeetingRunning, getMeetings, getMeetingInfo Surveiller les réunions en cours
Enregistrements getRecordings, publishRecordings, deleteRecordings, updateRecordings, getRecordingTextTracks, putRecordingTextTrack Gérer les enregistrements de réunion
Webhooks hooks/create, hooks/list, hooks/destroy Notifications d'événements en temps réel
Messagerie sendChatMessage Envoyer des messages de chat BBB 3.0+
Session getJoinUrl, feedback Gestion de session BBB 3.0+

Méthodes HTTP

La plupart des points de terminaison acceptent les requêtes GET et POST. Lors de l'utilisation de POST, notez que la checksum est calculée à partir de l'query string de l'URL, et non du corps de la requête. Le corps POST peut contenir des données supplémentaires telles que des XML de présentation ou des remplacements de paramètres client.

Même lors de l'envoi d'une requête POST, la checksum doit être calculée à partir des paramètres query string dans l'URL. Le contenu du corps n'est pas inclus dans le calcul de la checksum.

Format de réponse

Chaque réponse de l'API contient au moins les champs suivants :

<response>
  <returncode>SUCCESS</returncode>
  <!-- or -->
  <returncode>FAILED</returncode>
  <messageKey>errorKey</messageKey>
  <message>Human-readable error message</message>
</response>
Champ Description
returncode Toujours SUCCESS ou FAILED
messageKey Code d'erreur lisible par machine (présent uniquement en cas d'erreurs ou d'avertissements)
message Description de l'erreur ou de l'avertissement lisible par l'humain

Versionnement de l'API

L'API BigBlueButton n'utilise pas de versionnage traditionnel basé sur l'URL (pas de chemins /v1/, /v2/). À la place, de nouveaux paramètres sont ajoutés de manière rétrocompatible, et les paramètres obsolètes sont marqués en conséquence mais ne sont pas supprimés immédiatement.

Version BBB Modifications notables de l'API
2.2 paramètres Lock, allowModsToUnmuteUsers
2.4 logo, meetingLayout, allowModsToEjectCameras, Tableau de bord d'apprentissage
2.5 disabledFeatures, prise en charge de SHA-384/SHA-512, webhook eventID filtre
2.6 notifyRecordingIsOn, presentationUploadExternalUrl, mode sombre
2.7 preUploadedPresentation (URL unique), pagination d'enregistrement
3.0 sendChatMessage, getJoinUrl, feedback, pluginManifests, clientSettingsOverride, role remplace password sur join

Points de terminaison non documentés

Les points de terminaison suivants existent dans le code source BigBlueButton, mais ne sont pas couverts par la documentation officielle. Ils sont utilisés en interne et peuvent changer sans préavis.

Point de terminaison Méthode Description Statut
/api/stuns GET POST Renvoie la configuration serveur STUN/TURN pour les connexions WebRTC Undocumented
/api/signOut GET POST Terminer la session / déconnecter l'utilisateur Undocumented
/api/guestWait GET Interroger l'état du lobby pour les invités en attente de l'approbation du modérateur Undocumented
/api/getSessions GET POST Récupérer les informations de session Undocumented
/api/learningDashboard GET POST Récupérer les données d'analyse de l'apprentissage Undocumented

Mutations GraphQL (actions en réunion)

Depuis BBB 3.0, la plupart des actions en temps réel au sein d'une réunion sont gérées via des mutations GraphQL sur WebSocket. Celles-ci sont utilisées en interne par le client HTML5 BBB et ne font pas partie de l'API REST classique.

Catégorie Nombre Exemples
Discussion 9 chatSendMessage, chatDeleteMessage, chatEditMessage
Gestion des utilisateurs 26 userSetMuted, userSetRole, userEjectFromMeeting
Présentation 11 presentationSetCurrent, presentationSetPage
Contrôle de la réunion 8 meetingEnd, meetingRecordingSetStatus
Salles de répartition 7 breakoutRoomCreate, breakoutRoomEndAll
Sondages 4 pollCreate, pollSubmitUserVote, pollPublishResult
Minuteur 8 timerStart, timerStop, timerReset
Extensions 8 pluginDataChannelPushEntry, pluginPersistEvent

La couche GraphQL est destinée à un usage interne du client et ne fournit pas d'API publique stable. Les mutations et leurs paramètres peuvent changer entre les versions BBB sans préavis.

Prérequis

Avant de pouvoir commencer à utiliser l'API BigBlueButton, assurez-vous d'avoir les éléments suivants en place :

Un serveur BigBlueButton en fonctionnement (version 3.0 recommandée)

Le secret partagé (également appelé "security salt"), configuré dans /etc/bigbluebutton/bbb-web.properties

Accès HTTPS au serveur

Une application côté serveur qui génère les appels API — le shared secret ne doit jamais être exposé côté client

N'exposez jamais le shared secret dans du code côté client (JavaScript, applications mobiles). Tous les appels API doivent être générés côté serveur afin d'empêcher tout accès non autorisé à votre serveur BigBlueButton.

bbbserver.de — IntegrationAPI

Votre URL API et votre shared secret sont disponibles dans le panneau d'administration bbbserver sous Customer Settings → IntegrationAPI. Le IntegrationAPI peut y être activé ou désactivé.

Compatibilité Plugin

Les plateformes suivantes fonctionnent immédiatement — saisissez simplement l'URL API et le shared secret :

  • Moodle (BigBlueButtonBN)
  • ILIAS
  • Nextcloud
  • WordPress
  • Greenlight

Différences par rapport à l'API standard

Sujet Détail
maxParticipants / duration Utilisé pour la réservation de capacité, et pas seulement comme limite. Valeurs par défaut si non spécifié : 5 participants, 60 minutes.
duration comportement Ne met PAS automatiquement fin aux réunions — utilisé uniquement pour la planification de capacité.
Paramètre supplémentaire deactivateBbbserverDefaultChatTexts — à des fins de white-labeling.
Points de terminaison indisponibles updateRecordings, getDefaultConfigXML, setConfigXML, getRecordingTextTracks, putRecordingTextTracks
Webhooks Spécifique à la réunion uniquement, avec obfuscation de la confidentialité.
Limites de débit Aucune limitation de débit sur le IntegrationAPI.

En plus de l'IntegrationAPI, bbbserver.de propose une System API distincte avec des fonctionnalités spécifiques à la plateforme telles que la gestion des comptes et les statistiques d'utilisation. La System API n'est pas compatible avec BBB et n'est pas couverte dans ce guide.

Foire aux questions

L'API utilise un mécanisme shared-secret basé sur checksum. Chaque requête doit inclure un paramètre checksum calculé en hachant le nom de l'appel API, le query string et le shared secret. Il n'existe pas d'authentification OAuth ni de clé API.

Le format de réponse standard est XML. Quelques points de terminaison spécifiques peuvent renvoyer JSON, mais la grande majorité des appels API renvoient des documents XML avec un champ returncode indiquant SUCCESS ou FAILED.

Non, l'API BigBlueButton n'utilise pas de versionnage basé sur l'URL. De nouveaux paramètres sont ajoutés de manière rétrocompatible, et les paramètres obsolètes sont signalés mais non supprimés immédiatement. Vous devez toujours consulter le journal des modifications de votre version BBB.

Non. La couche GraphQL est conçue pour un usage interne par le client HTML5 BBB. Elle ne fournit pas d'API publique stable, et les mutations peuvent changer entre les versions sans préavis. Utilisez l'API REST pour toutes les intégrations externes.

Le bbbserver.de IntegrationAPI est un proxy qui réplique entièrement l'API BBB standard. Les applications externes s'y connectent comme si elles communiquaient avec un seul serveur BBB. Les principales différences sont la réservation de capacité via maxParticipants/duration, quelques points de terminaison indisponibles et des restrictions webhook propres aux réunions.

BigBlueButton 2.5 et les versions ultérieures prennent en charge SHA-256, SHA-384 et SHA-512 pour le calcul de checksum. Les versions antérieures utilisent SHA-1 ou SHA-256. Il est recommandé d'utiliser SHA-256 ou une version supérieure pour des raisons de sécurité.