Punkt końcowy create tworzy nowe spotkanie na serwerze BigBlueButton. Jeśli spotkanie z tym samym meetingID już istnieje, serwer zwraca dane istniejącego spotkania zamiast tworzyć duplikat (zachowanie idempotentne).
Punkt końcowy
POST GET
https://api-guide.bbbserver.com/bigbluebutton/api/create?<parameters>&checksum=replace-with-checksum
Wymagane parametry
| Parametr | Typ | Opis |
meetingID | String | Unikalny identyfikator spotkania (od 2 do 256 znaków, bez przecinków). |
name | String | Wyświetlana nazwa spotkania (od 2 do 256 znaków). Wymagana od BBB 2.4. |
Parametry opcjonalne
Ogólne
| Parametr | Typ | Domyślnie | Opis |
attendeePW Deprecated | String | (auto) | Hasło dostępu dla uczestnika. Przestarzałe od BBB 3.0 — generowane automatycznie. |
moderatorPW Deprecated | String | (auto) | Hasło dostępu dla moderatora. Przestarzałe od BBB 3.0 — generowane automatycznie. |
welcome | String | — | Wiadomość powitalna wyświetlana na czacie. Obsługuje symbole zastępcze: %%CONFNAME%%, %%DIALNUM%%, %%CONFNUM%%. |
moderatorOnlyMessage | String | — | Wiadomość widoczna tylko dla moderatorów na czacie. |
dialNumber | String | — | Numer dostępowy do uczestnictwa przez telefon. |
voiceBridge | String | (auto) | Pięć losowych cyfr (może zaczynać się od 0, np. 07382), generowanych automatycznie. Musi być unikalne dla każdego spotkania. |
maxParticipants | Number | 0 (unlimited) | Maksymalna liczba uczestników. W bbbserver.de ta wartość jest używana do rezerwacji pojemności (zobacz uwagi bbbserver.de poniżej). |
duration | Number | 0 (unlimited) | Maksymalny czas trwania w minutach. W standardowym BBB spotkanie kończy się automatycznie po upływie czasu. W bbbserver.de jest to używane wyłącznie do planowania pojemności (zobacz uwagi bbbserver.de poniżej). |
logoutURL | String | — | URL, na który użytkownik jest przekierowywany po wylogowaniu. BBB 3.0+ |
loginURL | String | — | URL udostępniany użytkownikom podczas spotkania. BBB 3.0+ |
record | Boolean | false | Włącz nagrywanie mediów i zdarzeń. |
autoStartRecording | Boolean | false | Nagrywanie rozpoczyna się automatycznie, gdy dołączy pierwsza osoba. |
allowStartStopRecording | Boolean | true | Zezwól użytkownikom ręcznie rozpoczynać i zatrzymywać nagrywanie. |
recordFullDurationMedia | Boolean | false | Nagrywaj media przez cały czas trwania spotkania. BBB 2.6.9+ |
muteOnStart | Boolean | true | Wycisz wszystkich uczestników przy dołączaniu. |
guestPolicy | Enum | ALWAYS_ACCEPT | Polityka gości: ALWAYS_ACCEPT, ALWAYS_DENY lub ASK_MODERATOR. |
webVoice Undocumented | String | (= telVoice) | Identyfikator konferencji głosowej dla użytkowników VoIP. Jeśli nie jest ustawiony, domyślnie przyjmuje wartość telVoice. |
meetingEndedURL Undocumented | String | — | URL zwrotny wywoływany po zakończeniu spotkania. W przeciwieństwie do meta_endCallbackUrl pozostaje on po stronie serwera i nie jest przekazywany do klienta ani do metadanych nagrania. |
logoutTimer Undocumented | Number | 0 (disabled) | Limit czasu w minutach przed automatycznym wylogowaniem. |
Układ i wygląd
| Parametr | Typ | Domyślnie | Opis |
meetingLayout | Enum | CUSTOM_LAYOUT | Domyślny układ. Możliwe wartości: UNIFIED_LAYOUT, CUSTOM_LAYOUT, SMART_LAYOUT, PRESENTATION_FOCUS, VIDEO_FOCUS, CAMERAS_ONLY, PARTICIPANTS_AND_CHAT_ONLY, PRESENTATION_ONLY, MEDIA_ONLY. |
logo | String | — | URL obrazu logo wyświetlanego nad listą uczestników. BBB 2.4+ |
bannerText | String | — | Tekst banera wyświetlany w kliencie. BBB 2.0+ |
bannerColor | String | — | Kolor tła banera jako wartość szesnastkowa, np. #FF0000. BBB 2.0+ |
darklogo Undocumented | String | — | URL obrazu logo dla trybu ciemnego. BBB 3.0+ |
copyright Undocumented | String | — | Tekst praw autorskich wyświetlany w kliencie. BBB 3.0+ |
Uprawnienia i ustawienia blokady
| Parametr | Typ | Domyślnie | Opis |
webcamsOnlyForModerator | Boolean | false | Kamery widoczne tylko dla moderatorów. |
allowModsToUnmuteUsers | Boolean | false | Pozwól moderatorom wyciszać wyciszenie innych użytkowników. BBB 2.2+ |
allowModsToEjectCameras | Boolean | false | Pozwól moderatorom zamykać kamery innych użytkowników. BBB 2.4+ |
allowPromoteGuestToModerator | Boolean | false | Pozwól promować gości do roli moderatora. BBB 2.7.9+ |
lockSettingsDisableCam | Boolean | false | Zablokuj udostępnianie kamery dla uczestników. BBB 2.2+ |
lockSettingsDisableMic | Boolean | false | Zablokuj mikrofon dla uczestników (tylko słuchanie). BBB 2.2+ |
lockSettingsDisablePrivateChat | Boolean | false | Zablokuj czat prywatny dla uczestników. BBB 2.2+ |
lockSettingsDisablePublicChat | Boolean | false | Zablokuj czat publiczny dla uczestników. BBB 2.2+ |
lockSettingsDisableNotes | Boolean | false | Zablokuj współdzielone notatki dla uczestników. BBB 2.2+ |
lockSettingsHideUserList | Boolean | false | Ukryj listę uczestników przed widzami. BBB 2.2+ |
lockSettingsHideViewersCursor | Boolean | false | Ukryj kursory innych widzów na tablicy. BBB 2.5+ |
lockSettingsHideViewersAnnotation Undocumented | Boolean | false | Ukryj adnotacje innych widzów na tablicy. BBB 2.6+ |
lockSettingsLockOnJoin | Boolean | true | Zastosuj ustawienia blokady natychmiast po dołączeniu użytkownika. BBB 2.2+ |
lockSettingsLockOnJoinConfigurable | Boolean | false | Włącz stosowanie ustawienia lockSettingsLockOnJoin. BBB 2.2+ |
Kamera
| Parametr | Typ | Domyślnie | Opis |
userCameraCap | Number | 3 | Maksymalna liczba jednoczesnych kamer na użytkownika. BBB 2.4.5+ |
meetingCameraCap | Number | 0 (unlimited) | Maksymalna liczba jednoczesnych kamer na spotkaniu. BBB 2.5+ |
maxPinnedCameras Undocumented | Number | 3 | Maksymalna liczba przypiętych kamer. BBB 3.0+ |
Wyłączanie funkcji
| Parametr | Typ | Domyślnie | Opis |
disabledFeatures | String | — | Lista funkcji do wyłączenia, rozdzielona przecinkami. BBB 2.5+ |
disabledFeaturesExclude | String | — | Lista funkcji do ponownego włączenia dla tego spotkania, rozdzielona przecinkami (zastępuje domyślne ustawienia po stronie serwera). BBB 2.6.9+ |
Dostępne wartości dla disabledFeatures:
| Wartość | Opis |
breakoutRooms | Pokoje do pracy w podgrupach |
captions | Napisy |
chat | Czat publiczny i prywatny |
privateChat | Tylko czat prywatny |
deleteChatMessage | Usuwanie wiadomości czatu BBB 3.0+ |
editChatMessage | Edytowanie wiadomości czatu BBB 3.0+ |
replyChatMessage | Odpowiadanie na wiadomości czatu BBB 3.0+ |
chatMessageReactions | Reakcje na wiadomości czatu BBB 3.0+ |
chatEmojiPicker | Selektor emoji na czacie BBB 3.0+ |
downloadPresentationWithAnnotations | Pobieranie prezentacji z adnotacjami |
downloadPresentationConvertedToPdf | Pobieranie przekonwertowanej prezentacji |
downloadPresentationOriginalFile | Pobieranie oryginalnego pliku prezentacji |
snapshotOfCurrentSlide | Migawka bieżącego slajdu |
externalVideos | Udostępnianie zewnętrznego wideo |
importPresentationWithAnnotationsFromBreakoutRooms | Import prezentacji z pokoi podgrup |
importSharedNotesFromBreakoutRooms | Import współdzielonych notatek z pokoi podgrup |
layouts | Wybór układu (tylko układ domyślny) |
learningDashboard | Panel analityki edukacyjnej |
learningDashboardDownloadSessionData | Pobierz dane sesji panelu |
polls | Ankiety |
screenshare | Udostępnianie ekranu |
sharedNotes | Wspólne notatki |
virtualBackgrounds | Wirtualne tła |
customVirtualBackgrounds | Prześlij niestandardowe wirtualne tła |
liveTranscription | Transkrypcja na żywo |
presentation | Prezentacja |
cameraAsContent | Kamera jako treść |
timer | Minutnik |
infiniteWhiteboard | Nieskończona tablica BBB 3.0+ |
raiseHand | Podniesienie ręki BBB 3.0+ |
userReactions | Reakcje użytkowników BBB 3.0+ |
reactions | Reakcje statusu emoji (inne niż userReactions) BBB 3.0+ |
quizzes | Quizy BBB 3.0+ |
Cykl życia spotkania
| Parametr | Typ | Domyślnie | Opis |
endWhenNoModerator | Boolean | false | Automatycznie zakończ spotkanie, gdy nie ma moderatora. BBB 2.3+ |
endWhenNoModeratorDelayInMinutes | Number | 1 | Opóźnienie w minutach przed automatycznym zakończeniem, gdy nie ma moderatora. BBB 2.2+ |
meetingExpireIfNoUserJoinedInMinutes | Number | 5 | Zakończ spotkanie, jeśli nikt nie dołączy w ciągu tylu minut. BBB 2.5+ |
meetingExpireWhenLastUserLeftInMinutes | Number | 1 | Zakończ spotkanie X minut po opuszczeniu go przez ostatniego użytkownika. 0 = wyłączone. BBB 2.5+ |
meetingKeepEvents | Boolean | false | Zachowaj zdarzenia, nawet jeśli spotkanie nie jest nagrywane. BBB 2.3+ |
learningDashboardCleanupDelayInMinutes | Number | 2 | Opóźnienie przed usunięciem panelu analityki edukacyjnej. BBB 2.4+ |
allowRequestsWithoutSession | Boolean | false | Zezwól na dołączenie bez pliku cookie sesji. BBB 2.4.3+ |
Prezentacja
| Parametr | Typ | Domyślnie | Opis |
preUploadedPresentation | String | — | URL pliku prezentacji do wstępnego przesłania. BBB 2.7.2+ |
preUploadedPresentationName | String | — | Nazwa dla wstępnie przesłanej prezentacji. BBB 2.7.2+ |
preUploadedPresentationOverrideDefault | Boolean | true | Wyłącz domyślną prezentację (default.pdf). BBB 2.5+ |
maxNumPages | Number | 200 | Maksymalna liczba stron na prezentację. BBB 3.0+ |
presentationUploadExternalUrl | String | — | URL zewnętrznej aplikacji wyboru plików. BBB 2.6+ |
presentationUploadExternalDescription | String | — | Opis zewnętrznej aplikacji do przesyłania. BBB 2.6+ |
presentationConversionCacheEnabled | Boolean | — | Włącz pamięć podręczną prezentacji przy użyciu pamięci S3. BBB 3.0+ |
Nagrywanie
| Parametr | Typ | Domyślnie | Opis |
notifyRecordingIsOn | Boolean | false | Pokaż modalne okno dialogowe zgody na nagrywanie. BBB 2.6+ |
Tablica
| Parametr | Typ | Domyślnie | Opis |
multiUserWhiteboardEnabled | Boolean | — | Automatycznie włącz dostęp do tablicy dla wszystkich użytkowników. Domyślnie true w pokojach podgrup. BBB 3.0+ |
Wtyczki
| Parametr | Typ | Domyślnie | Opis |
pluginManifests | JSON | — | Lista manifestów wtyczek dla sesji. BBB 3.0+ |
pluginManifestsFetchUrl | String | — | URL pliku JSON zawierającego adresy URL manifestów wtyczek. BBB 3.0+ |
Pokoje podgrup
Te parametry są istotne podczas tworzenia spotkania jako pokoju podgrupy:
| Parametr | Typ | Domyślnie | Opis |
isBreakout | Boolean | — | Musi być true dla pokoi podgrup. |
parentMeetingID | String | — | ID spotkania nadrzędnego (wymagane dla pokoi podgrup). |
sequence | Number | — | Numer sekwencyjny pokoju podgrupy (wymagany dla pokoi podgrup). |
freeJoin | Boolean | — | Pozwól uczestnikom swobodnie wybierać pokój podgrupy. |
breakoutRoomsPrivateChatEnabled | Boolean | true | Włącz prywatny czat w pokojach podgrup. |
breakoutRoomsRecord | Boolean | false | Nagrywaj pokoje podgrup. |
breakoutRoomsCaptureSlides | Boolean | false | Przechwytuj slajdy z pokoi podgrup po ich zakończeniu. |
breakoutRoomsCaptureNotes | Boolean | false | Przechwytuj notatki z pokoi podgrup po ich zakończeniu. |
breakoutRoomsCaptureSlidesFilename | String | — | Nazwa pliku dla przechwyconych slajdów. |
breakoutRoomsCaptureNotesFilename | String | — | Nazwa pliku dla przechwyconych notatek. |
groups | JSON | — | Predefiniowane przypisania grup jako tablica JSON. |
Format dla groups:
[
{"id": "1", "name": "Group A", "roster": ["userId1", "userId2"]},
{"id": "2", "name": "Group B", "roster": ["userId3"]},
{"id": "3", "roster": []}
]
Nadpisanie ustawień klienta
| Parametr | Typ | Domyślnie | Opis |
allowOverrideClientSettingsOnCreateCall | Boolean | false | Włącza parametr clientSettingsOverride w treści POST. BBB 3.0+ |
clientSettingsOverride | JSON | — | Nadpisuje ustawienia klienta z settings.yml. BBB 3.0+ |
Parametr clientSettingsOverride jest domyślnie wyłączony ze względów bezpieczeństwa. Jego wartości mają wyższy priorytet niż konfiguracja po stronie serwera, a treść POST nie jest chroniona przez checksum.
Przykład jako XML w treści POST:
<modules>
<module name="clientSettingsOverride">
<![CDATA[
{
"public": {
"app": {
"appName": "My Conference",
"helpLink": "https://api-guide.bbbserver.com/help"
}
}
}
]]>
</module>
</modules>
Mosty
| Parametr | Typ | Domyślnie | Opis |
cameraBridge Undocumented | String | — | Punkt końcowy dla mostu kamery. |
screenShareBridge Undocumented | String | — | Punkt końcowy dla mostu udostępniania ekranu. |
audioBridge Undocumented | String | — | Punkt końcowy dla mostu audio. |
Parametry meta
Dowolne metadane można przekazać jako meta_<key>=<value>. Niektóre parametry meta mają specjalne znaczenie:
| Parametr meta | Opis |
meta_endCallbackUrl | URL wywołania zwrotnego GET po zakończeniu spotkania. Parametry: meetingID, recordingmarks. |
meta_bbb-recording-ready-url | URL wywołania zwrotnego POST, gdy nagranie jest gotowe (podpisane JWT). |
meta_analytics-callback-url | URL wywołania zwrotnego POST z danymi analitycznymi przy zakończeniu spotkania (JSON). |
meta_bbb-anonymize-chat | Anonimizuj nadawców czatu w nagraniach (tylko uczestnicy). |
meta_bbb-anonymize-chat-moderators | Anonimizuj nadawców czatu w nagraniach (łącznie z moderatorami). |
Oprócz parametrów meta_* obsługiwane są również parametry plugin_*. Są one przetwarzane jako metadane wtyczki i mogą zastępować symbole zastępcze w adresach URL manifestu wtyczki. Undocumented
Przykładowe żądanie
GET https://api-guide.bbbserver.com/bigbluebutton/api/create?name=Demo&meetingID=replace-with-meeting-id&attendeePW=replace-with-password&moderatorPW=replace-with-password&checksum=replace-with-checksum
Przykładowa odpowiedź
<response>
<returncode>SUCCESS</returncode>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>replace-with-internal-meeting-id</internalMeetingID>
<parentMeetingID>bbb-none</parentMeetingID>
<attendeePW>replace-with-password</attendeePW>
<moderatorPW>replace-with-password</moderatorPW>
<createTime>1715261728123</createTime>
<voiceBridge>70066</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<createDate>Thu May 09 13:35:28 UTC 2024</createDate>
<hasUserJoined>false</hasUserJoined>
<duration>0</duration>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
</response>
Jeśli spotkanie o tym samym ID już istnieje, odpowiedź zawiera ostrzeżenie o duplikacie:
<response>
<returncode>SUCCESS</returncode>
<meetingID>replace-with-meeting-id</meetingID>
<!-- ... same fields ... -->
<messageKey>duplicateWarning</messageKey>
<message>This conference was already in existence...</message>
</response>
Przesyłanie prezentacji przez treść POST
Prezentacje można przesłać jako treść XML wraz z żądaniem POST:
<modules>
<module name="presentation">
<document url="https://api-guide.bbbserver.com/files/slides.pdf" filename="slides.pdf"
downloadable="true" removable="false" current="true"/>
<document url="https://api-guide.bbbserver.com/files/extras.pdf" filename="extras.pdf"/>
<document name="inline.pdf">
JVBERi0xLjQK... (Base64-encoded content)
</document>
</module>
</modules>
Atrybuty dla każdego elementu <document>:
| Atrybut | Typ | Domyślnie | Opis |
url | String | — | URL pliku zewnętrznego. |
filename | String | — | Pomaga w wykrywaniu typu pliku, gdy URL nie ma rozszerzenia. |
name | String | — | Nazwa dla dokumentów osadzonych w Base64. |
downloadable | Boolean | false | Pozwól użytkownikom pobierać prezentację. |
removable | Boolean | true | Pozwól użytkownikom usuwać prezentację. |
current | Boolean | — | Ta prezentacja jest ładowana jako pierwsza. |
Gdy dostarczono wiele dokumentów, pierwszy z nich jest ładowany w kliencie, a pozostałe są konwertowane w tle.
Uwagi bbbserver.de
Dodatkowy parametr
| Parametr | Typ | Domyślnie | Opis |
deactivateBbbserverDefaultChatTexts | Boolean | false | Gdy ustawione na false (domyślnie), bbbserver.de automatycznie wstawia teksty czatu (numery połączeń telefonicznych, informację o hostingu). Twoje własne teksty welcome i moderatorOnlyMessage są dołączane po nich. Ustaw na true, aby pominąć teksty bbbserver.de (white-labeling). |
Rezerwacja pojemności
W bbbserver.de parametry maxParticipants i duration mają szczególne znaczenie i zachowują się inaczej niż w standardowym BigBlueButton.
Podczas tworzenia spotkania bbbserver.de rezerwuje pojemność sprzętową:
- Określona liczba uczestników jest gwarantowana i rezerwowana na serwerze na określony czas.
- Zarezerwowana pojemność jest odejmowana od wykupionego limitu jednoczesnych połączeń.
- Jeśli nie określono inaczej, obowiązują wartości domyślne: 5 uczestników i 60 minut (konfigurowalne w panelu administracyjnym w sekcji „Customer Settings → IntegrationAPI”).
- Po upływie czasu trwania spotkanie nadal działa, ale pojemność nie jest już zarezerwowana. bbbserver.de może automatycznie zakończyć spotkanie, jeśli nowe spotkanie będzie wymagało tej pojemności.
- Parametr
duration nie kończy spotkań. W przeciwieństwie do standardowego BBB musisz wysłać wywołanie API end, aby zakończyć spotkanie po określonym czasie.
Od BBB 3.0 parametry attendeePW i moderatorPW są przestarzałe. Zamiast nich używaj parametru role w punkcie końcowym join do przypisywania ról.
Najczęściej zadawane pytania
Serwer zwraca dane istniejącego spotkania zamiast tworzyć nowe. Odpowiedź zawiera klucz komunikatu duplicateWarning wskazujący ten stan.
Nie. Od BBB 3.0 te hasła są przestarzałe i generowane automatycznie. Używaj parametru role w punkcie końcowym join do przypisywania ról uczestnika lub moderatora.
Wyślij żądanie POST z treścią XML zawierającą element modules/module z wpisami dokumentów. Każdy dokument może odwoływać się do zewnętrznego URL lub zawierać dane pliku zakodowane w Base64.
meta_endCallbackUrl to standardowy parametr meta, który może być propagowany do klienta i metadanych nagrania. meetingEndedURL to nieudokumentowane wywołanie zwrotne po stronie serwera, które pozostaje wewnętrzne i nie jest ujawniane klientom.
Gdy tworzysz spotkanie, bbbserver.de rezerwuje pojemność sprzętową na podstawie wartości maxParticipants i duration. Zarezerwowane sloty są odejmowane od limitu jednoczesnych połączeń. Po upływie czasu spotkanie nadal trwa, ale nie jest już chronione przed zakończeniem, jeśli pojemność będzie potrzebna gdzie indziej.
Tak, ustawiając allowOverrideClientSettingsOnCreateCall na true i przekazując clientSettingsOverride JSON w treści POST. Domyślnie jest to wyłączone ze względów bezpieczeństwa, ponieważ treść POST nie jest objęta checksum.