getMeetingInfo – Obtenir les détails de la réunion
Le point de terminaison getMeetingInfo renvoie des informations détaillées sur une réunion BigBlueButton unique, y compris ses participants actuels, ses métadonnées, ses paramètres de configuration et l'état de l'enregistrement. Utilisez-le pour inspecter une réunion spécifique en temps réel.
Point de terminaison
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?<parameter>&checksum=replace-with-checksum Ce point de terminaison nécessite une checksum valide calculée à partir du secret partagé de votre serveur BigBlueButton. Les requêtes GET et POST sont prises en charge.
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
meetingID | String | Oui | L'identifiant de la réunion à interroger. Il s'agit de l'ID que vous avez spécifié lors de la création de la réunion. |
Champs de réponse
Une réponse réussie contient les champs suivants décrivant la réunion et son état actuel :
| Champ | Type | Description |
|---|---|---|
returncode | String | Indique si l'appel a réussi. Renvoie SUCCESS ou FAILED. |
meetingName | String | Le nom lisible par l'humain de la réunion. |
meetingID | String | L'identifiant externe de la réunion tel que spécifié lors de la création. |
internalMeetingID | String | L'identifiant unique interne généré par BigBlueButton. |
createTime | Long | Horodatage (en millisecondes depuis l'époque Unix) du moment où la réunion a été créée. |
createDate | String | Date et heure lisibles par l'humain du moment où la réunion a été créée. |
voiceBridge | String | Le numéro du pont vocal pour la connexion téléphonique. |
dialNumber | String | Le numéro de téléphone pour l'accès par appel, si configuré. |
attendeePW | String deprecated | Le mot de passe participant. Inclus pour la rétrocompatibilité mais obsolète depuis BigBlueButton 2.5. |
moderatorPW | String deprecated | Le mot de passe modérateur. Inclus pour la rétrocompatibilité mais obsolète depuis BigBlueButton 2.5. |
running | Boolean | Indique si la réunion est actuellement en cours (true) ou non (false). |
duration | Integer | La durée maximale de la réunion en minutes. Une valeur de 0 signifie illimitée. |
hasUserJoined | Boolean | Indique si au moins un utilisateur a rejoint la réunion. |
recording | Boolean | Indique si la réunion est en cours d'enregistrement. |
hasBeenForciblyEnded | Boolean | Indique si la réunion a été terminée par un appel API end. |
startTime | Long | Horodatage (en millisecondes) du moment où la réunion a commencé. |
endTime | Long | Horodatage (en millisecondes) du moment où la réunion s'est terminée. Renvoie 0 si elle est toujours en cours. |
participantCount | Integer | Le nombre total de participants actuellement dans la réunion. |
listenerCount | Integer | Le nombre de participants en mode écoute seule. |
voiceParticipantCount | Integer | Le nombre de participants qui ont rejoint le canal audio. |
videoCount | Integer | Le nombre de participants partageant leur webcam. |
maxUsers | Integer | Le nombre maximal d'utilisateurs autorisés. Une valeur de 0 signifie illimité. |
moderatorCount | Integer | Le nombre de modérateurs actuellement dans la réunion. |
attendees | XML Container | Contient une liste d'éléments attendee avec des détails sur chaque participant connecté (voir les champs Attendee ci-dessous). |
metadata | XML Container | Contient les paires clé-valeur de métadonnées personnalisées transmises lors de la création de la réunion. |
isBreakout | Boolean | Indique si la réunion est une salle de répartition. |
parentMeetingID | String | L'ID de la réunion parente. Présent uniquement pour les salles de répartition. |
sequence | Integer | Le 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 la salle de répartition à rejoindre. Présent uniquement pour les salles de répartition. |
breakoutRooms | XML Container | Liste les identifiants des salles de sous-groupes associées à cette réunion. Présent uniquement lorsque des salles de sous-groupes ont été créées. |
Champs des participants
Chaque élément attendee dans attendees contient les champs suivants :
| Champ | Type | Description |
|---|---|---|
userID | String | L'ID utilisateur interne BigBlueButton, généralement au format w_xxxxxxxx. |
fullName | String | Le nom d’affichage du participant. |
role | Enum | Le rôle du participant : MODERATOR ou VIEWER. |
isPresenter | Boolean | Indique si le participant est actuellement le présentateur. |
isListeningOnly | Boolean | Indique si le participant est en mode écoute seule. |
hasJoinedVoice | Boolean | Indique si le participant a rejoint le canal audio avec un microphone. |
hasVideo | Boolean | Indique si le participant partage sa webcam. |
clientType | String | Le type de client utilisé par le participant. Généralement HTML5. |
customdata | XML Container | Contient des données clé-valeur personnalisées sous forme d'éléments enfants XML. Présent uniquement lorsque des données personnalisées ont été définies pour le participant pendant join. |
Exemple de requête
GET https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?meetingID=replace-with-meeting-id&checksum=replace-with-checksum Exemple de réponse (succès)
<response>
<returncode>SUCCESS</returncode>
<meetingName>Project Discussion</meetingName>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>replace-with-internal-meeting-id</internalMeetingID>
<createTime>1715261728123</createTime>
<createDate>Thu May 09 13:35:28 UTC 2024</createDate>
<voiceBridge>66052</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<attendeePW>replace-with-password</attendeePW>
<moderatorPW>replace-with-password</moderatorPW>
<running>true</running>
<duration>0</duration>
<hasUserJoined>true</hasUserJoined>
<recording>true</recording>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<startTime>1715261728142</startTime>
<endTime>0</endTime>
<participantCount>3</participantCount>
<listenerCount>1</listenerCount>
<voiceParticipantCount>2</voiceParticipantCount>
<videoCount>2</videoCount>
<maxUsers>0</maxUsers>
<moderatorCount>1</moderatorCount>
<attendees>
<attendee>
<userID>replace-with-user-id</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>
<bbb-origin>greenlight</bbb-origin>
<bbb-origin-version>v3.1.0</bbb-origin-version>
<endcallbackurl>https://api-guide.bbbserver.com/callbacks/meeting-ended</endcallbackurl>
</metadata>
<isBreakout>false</isBreakout>
</response> Réponse d’erreur
Si l'ID de réunion spécifié n'existe pas ou s'est déjà terminée, l'API renvoie une réponse FAILED :
<response>
<returncode>FAILED</returncode>
<messageKey>notFound</messageKey>
<message>We could not find a meeting with that meeting ID</message>
</response> Une erreur notFound ne signifie pas nécessairement que la réunion n'a jamais été créée. Elle peut déjà s'être terminée et avoir été supprimée de la mémoire du serveur. BigBlueButton ne conserve les données de réunion que tant que la réunion est active.
getMeetingInfo vs getMeetings
| Aspect | getMeetings | getMeetingInfo |
|---|---|---|
| Portée | Toutes les réunions actives sur le serveur | Une seule réunion spécifique |
| Paramètres | Aucun requis | meetingID requis |
| Détails des participants | Tous les utilisateurs, y compris ceux qui ont quitté | Uniquement les utilisateurs actuellement connectés |
| Cas d’utilisation | Vue d’ensemble du tableau de bord et de la supervision | Inspection ciblée d’une réunion spécifique |
Cas d'utilisation courants
- Logique de connexion — vérifier si un modérateur est présent avant de rediriger les invités vers la réunion.
- Listes de participants — afficher les participants actuellement présents dans une application externe ou une page d’accueil.
- Statut de l’enregistrement — vérifier si l’enregistrement est actuellement actif pour la réunion.
- Débogage — effectuer une analyse détaillée d’une réunion spécifique à des fins de dépannage.
getMeetingInfo est disponible dans tous les forfaits. Vous pouvez trouver vos identifiants API dans le tableau de bord de gestion du serveur.Conseils
Interrogez périodiquement getMeetingInfo pour construire une liste en direct des participants. Combinez les champs voiceParticipantCount et videoCount pour déterminer combien d'utilisateurs sont activement engagés avec l'audio et la vidéo.
Utilisez le conteneur metadata pour transmettre et récupérer des données spécifiques à l'application telles que le système d'origine, les URL de rappel ou des libellés personnalisés sans interférer avec les mécanismes internes de BigBlueButton.
Les champs attendeePW et moderatorPW sont obsolètes depuis BigBlueButton 2.5. Ils sont toujours renvoyés pour la rétrocompatibilité, mais vous ne devriez pas vous y fier pour la logique d'authentification dans les nouvelles intégrations.
Foire aux questions
FAILED avec la messageKey "notFound". BigBlueButton supprime les données de réunion de la mémoire une fois la réunion terminée. Pour accéder aux informations sur les réunions passées, utilisez plutôt le point de terminaison getRecordings.getMeetings peut inclure des utilisateurs qui sont partis dans certaines versions de BigBlueButton.BigBlueButton lui-même, mais une interrogation fréquente (par ex. chaque seconde) peut imposer une charge inutile au serveur. Un intervalle d'interrogation de 5 à 10 secondes est généralement suffisant pour la plupart des cas d'usage.getMeetingInfo avec le meetingID. Si le returncode de la réponse est SUCCESS, la réunion existe et est active. S'il est FAILED avec la messageKey "notFound", la réunion n'existe pas ou s'est déjà terminée.parentMeetingID, sequence, freeJoin et breakoutRooms n'apparaissent dans la réponse que lorsque la réunion est une salle de répartition ou possède des salles de répartition. Pour les réunions normales, isBreakout vaut false et les autres champs de répartition sont omis.customdata contient des paires clé-valeur spécifiques à l'utilisateur qui ont été transmises comme paramètres lorsque l'utilisateur a rejoint la réunion via l'appel API join. Chaque clé devient un élément enfant XML. Si aucune donnée personnalisée n'a été fournie, cet élément peut être absent.