getMeetings – Lister toutes les réunions
Le point de terminaison getMeetings renvoie une liste de toutes les réunions existant actuellement sur le serveur BigBlueButton, y compris les détails des participants et les métadonnées. C'est l'outil principal pour créer des tableaux de bord d'administration, surveiller la charge du serveur et planifier la capacité sur votre infrastructure.
Point de terminaison
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Ce point de terminaison ne nécessite aucun paramètre supplémentaire au-delà de la checksum. Il renvoie toutes les réunions du serveur dans une seule réponse.
Paramètres
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
checksum | String | Oui | — | de sécurité calculée à partir du nom de l'appel API et du secret partagé. |
Exemple de requête
https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum Exemple de réponse
Réunions trouvées
<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>Demo Meeting</meetingName>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>a0715c95...</internalMeetingID>
<createTime>1531241258036</createTime>
<createDate>Tue Jul 10 16:47:38 UTC 2018</createDate>
<voiceBridge>70066</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<attendeePW>ap</attendeePW>
<moderatorPW>mp</moderatorPW>
<running>true</running>
<duration>0</duration>
<hasUserJoined>true</hasUserJoined>
<recording>false</recording>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<startTime>1531241258074</startTime>
<endTime>0</endTime>
<participantCount>5</participantCount>
<listenerCount>2</listenerCount>
<voiceParticipantCount>3</voiceParticipantCount>
<videoCount>2</videoCount>
<maxUsers>0</maxUsers>
<moderatorCount>1</moderatorCount>
<attendees>
<attendee>
<userID>w_ftcrsyuh44oj</userID>
<fullName>Max Mustermann</fullName>
<role>MODERATOR</role>
<isPresenter>true</isPresenter>
<isListeningOnly>false</isListeningOnly>
<hasJoinedVoice>true</hasJoinedVoice>
<hasVideo>true</hasVideo>
<clientType>HTML5</clientType>
</attendee>
</attendees>
<metadata/>
<isBreakout>false</isBreakout>
</meeting>
</meetings>
</response> Aucune réunion trouvée
<response>
<returncode>SUCCESS</returncode>
<meetings/>
<messageKey>noMeetings</messageKey>
<message>no meetings were found on this server</message>
</response> Champs de réponse par réunion
| Champ | Type | Description |
|---|---|---|
meetingName | String | Nom d’affichage de la réunion. |
meetingID | String | ID externe de la réunion tel que spécifié lors de la création. |
internalMeetingID | String | ID unique interne généré par le serveur. |
createTime | Number | Horodatage de création en millisecondes depuis l’époque Unix. |
createDate | String | Chaîne de date de création lisible par l’humain. |
voiceBridge | String | Numéro de pont vocal pour l’audioconférence. |
dialNumber | String | Numéro d’appel téléphonique pour la réunion. |
attendeePW | String | Mot de passe participant. Présent uniquement s'il est défini. Obsolète dans BBB 3.0. |
moderatorPW | String | Mot de passe modérateur. Présent uniquement s'il est défini. Obsolète dans BBB 3.0. |
running | Boolean | Indique si la réunion est actuellement active. |
duration | Number | Durée maximale en minutes. 0 signifie illimitée. |
hasUserJoined | Boolean | Indique si au moins un utilisateur a rejoint la réunion. |
recording | Boolean | Indique si l’enregistrement est activé pour cette réunion. |
hasBeenForciblyEnded | Boolean | Indique si la réunion a été forcée à se terminer via l’API. |
startTime | Number | Horodatage de début en millisecondes depuis l’époque Unix. |
endTime | Number | Horodatage de fin. 0 si la réunion est toujours en cours. |
participantCount | Number | Nombre actuel de participants à la réunion. |
listenerCount | Number | Nombre de participants en écoute seule. |
voiceParticipantCount | Number | Nombre de participants avec audio actif. |
videoCount | Number | Nombre de webcams actives. |
maxUsers | Number | Nombre maximal de participants autorisés. 0 signifie illimité. |
moderatorCount | Number | Nombre de modérateurs actuellement dans la réunion. |
attendees | List | Liste de tous les participants avec des détails tels que userID, fullName, role et l'état des médias. |
metadata | Object | Tous les paramètres de métadonnées personnalisées transmis lors de l'appel create. |
isBreakout | Boolean | Indique s’il s’agit d’une salle de répartition. |
parentMeetingID | String | ID de réunion de la réunion parente. Présent uniquement pour les salles de répartition. |
sequence | Number | Numéro de séquence de la salle de répartition. Présent uniquement pour les salles de répartition. |
freeJoin | Boolean | Indique si les participants peuvent choisir librement cette salle de répartition. Présent uniquement pour les salles de répartition. |
breakoutRooms | List | Liste des ID des salles de répartition. Présente uniquement lorsque la réunion a des salles de répartition actives. |
Détails des participants
Chaque entrée de la liste attendees contient les champs suivants :
| Champ | Type | Description |
|---|---|---|
userID | String | Identifiant utilisateur interne unique. |
fullName | String | Nom d’affichage du participant. |
role | String | Rôle du participant : MODERATOR ou VIEWER. |
isPresenter | Boolean | Indique si le participant est actuellement le présentateur. |
isListeningOnly | Boolean | Indique si le participant a rejoint en mode écoute seule. |
hasJoinedVoice | Boolean | Indique si le participant a rejoint la conférence vocale. |
hasVideo | Boolean | Indique si le participant a une webcam active. |
clientType | String | Type de client utilisé par le participant (par ex. HTML5). |
La liste des participants renvoyée par getMeetings inclut tous les utilisateurs ayant déjà rejoint la réunion, y compris ceux qui l’ont déjà quittée. Cela diffère de getMeetingInfo, qui ne renvoie que les utilisateurs actuellement connectés. Gardez cela à l’esprit lors du calcul du nombre de participants actifs.
Cas d'utilisation courants
- Tableau de bord d’administration — affiche une vue d’ensemble de toutes les réunions en cours et de leur nombre de participants.
- Planification de capacité — calcule le nombre total de participants actifs sur l’ensemble des réunions du serveur.
- Surveillance — identifie les réunions sans modérateur ou les réunions rencontrant des problèmes.
- Nettoyage automatique — trouve les réunions qui existent depuis longtemps sans aucun participant.
Conseils et bonnes pratiques
Puisque getMeetings renvoie toutes les réunions du serveur (pas seulement celles en cours), filtrez les résultats sur le champ running si vous n'avez besoin que des réunions actives.
La réponse contient des informations sensibles telles que les noms des participants, les ID utilisateur et les mots de passe. Appelez toujours ce point de terminaison uniquement depuis du code côté serveur. Ne l’exposez jamais à des applications côté client ni aux utilisateurs finaux.
Ce point de terminaison ne prend pas en charge la pagination. Sur les serveurs avec de nombreuses réunions simultanées, la réponse peut devenir très volumineuse et affecter les performances. Envisagez de mettre les résultats en cache si vous interrogez fréquemment.
Foire aux questions
running si vous n'avez besoin que des réunions actives.getMeetings renvoie un résumé de toutes les réunions du serveur, tandis que getMeetingInfo renvoie des informations détaillées sur une réunion spécifique. De plus, la liste des participants dans getMeetings inclut tous les utilisateurs ayant déjà rejoint la réunion (y compris ceux qui l'ont quittée), tandis que getMeetingInfo ne liste que les utilisateurs actuellement connectés.isBreakout. S'il est true, la réunion est une salle de répartition et inclura des champs supplémentaires tels que parentMeetingID, sequence et freeJoin. La réunion parente aura une liste breakoutRooms contenant les ID de ses salles de répartition.getMeetings. Toutes les réunions sont renvoyées dans une seule réponse. Pour les serveurs avec un très grand nombre de réunions, envisagez de mettre en œuvre une mise en cache ou d'appeler le point de terminaison moins fréquemment afin de réduire la charge du serveur.