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.

Si vous utilisez bbbserver.de, consultez le chapitre bbbserver.de IntegrationAPI dédié pour la configuration du tableau de bord, la compatibilité des plugins et les différences par rapport à l’API standard.

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.

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é.