join – Приєднатися до зустрічі
Кінцева точка join генерує URL-адресу, яка дозволяє користувачеві увійти до активної зустрічі BigBlueButton. За замовчуванням браузер перенаправляється безпосередньо до клієнта BBB. Якщо redirect встановлено в false, натомість повертається відповідь XML, що містить URL приєднання та токен сесії.
Ендпоінт
GET https://api-guide.bbbserver.com/bigbluebutton/api/join?<parameters>&checksum=replace-with-checksum Виклик join — це єдина API-кінцева точка, яка викликається безпосередньо в браузері кінцевого користувача (як URL перенаправлення). Усі інші API-виклики виконуються на стороні сервера.
Обов’язкові параметри
| Параметр | Тип | Опис |
|---|---|---|
meetingID | String | Обов’язково. Ідентифікатор зустрічі, до якої потрібно приєднатися. |
fullName | String | Обов’язково. Ім’я користувача, яке відображається на зустрічі. |
role | Enum | Обов’язково. Роль користувача: MODERATOR або VIEWER (без урахування регістру). BBB 3.0+ |
Застарілі параметри
| Параметр | Тип | Опис |
|---|---|---|
password | String | Застаріло
Застаріло з BBB 3.0. Призначення ролей через пароль (attendeePW/moderatorPW з create). Замінено на role. |
Необов’язкові параметри
| Параметр | Тип | За замовчуванням | Опис |
|---|---|---|---|
createTime | Number (Long) | — | Мітка часу з відповіді create. Запобігає входу до зустрічі, яку було повторно створено після генерування URL-адреси входу. |
userID | String | — | Специфічний для застосунку ідентифікатор користувача. Повертається в getMeetingInfo і webhooks. |
avatarURL | String | — | URL-адреса зображення аватара користувача. |
webcamBackgroundURL | String | — | URL-адреса власного фонового зображення для вебкамери. |
firstName | String | — | Ім’я (використовується для сортування, не для відображення). |
lastName | String | — | Прізвище (використовується для сортування, не для відображення). |
redirect | Boolean | true | Якщо встановлено false, замість перенаправлення браузера повертається відповідь XML. |
errorRedirectUrl | String | — | Альтернативна URL-адреса для перенаправлення у разі помилок (замість стандартної сторінки помилки). |
logoutURL | String | — | URL-адреса для перенаправлення після виходу. Перевизначає значення з create. |
guest | Boolean | false | Позначити користувача як гостя. Підпорядковується політиці guestPolicy цієї зустрічі. |
bot | Boolean | false | Позначити користувача як автоматизованого агента. |
excludeFromDashboard | Boolean | false | Виключити користувача з панелі аналітики навчання. |
enforceLayout | Enum | — | Примусово встановити певний макет для цього користувача. Можливі значення: UNIFIED_LAYOUT, CUSTOM_LAYOUT, SMART_LAYOUT, PRESENTATION_FOCUS, VIDEO_FOCUS, CAMERAS_ONLY, PARTICIPANTS_AND_CHAT_ONLY, PRESENTATION_ONLY, MEDIA_ONLY. ⚠ Не задокументовано В офіційній документації це значення помилково вказано як PARTICIPANTS_CHAT_ONLY (без _AND_). |
auth | Boolean | (умовно) | ⚠ Не задокументовано
Позначити користувача як автентифікованого. Умовна логіка: якщо guest не вказано, auth за замовчуванням має значення true. Якщо вказано guest=true, auth за замовчуванням має значення false, якщо не встановлено явно. |
defaultLayout | String | — | ⚠ Не задокументовано
Типовий макет для цього користувача. Ті самі значення, що й для meetingLayout у виклику create. |
sessionName | String | — | ⚠ Не задокументовано
Власна назва сесії. Працює лише в поєднанні з existingUserID. |
existingUserID | String | — | ⚠ Не задокументовано Внутрішній ідентифікатор користувача для повторного входу або перепідключення до наявної сесії. |
replaceSessionToken | String | — | ⚠ Не задокументовано
Токен сесії, яку потрібно замінити (коли використовується разом із existingUserID). |
Параметри Userdata
Під час виклику join ви можете передавати користувацькі дані як параметри userdata-. Вони стають доступними в клієнті та можуть керувати поведінкою плагінів або налаштуваннями клієнта для кожного користувача окремо.
Певні ключі userdata можуть бути заблоковані на стороні сервера через список блокування (getJoinUrlUserdataBlocklist).
Приклад запиту
GET https://api-guide.bbbserver.com/bigbluebutton/api/join?meetingID=replace-with-meeting-id&fullName=John+Doe&role=VIEWER&redirect=false&checksum=replace-with-checksum Приклад відповіді (redirect=false)
<response>
<returncode>SUCCESS</returncode>
<messageKey>successfullyJoined</messageKey>
<message>You have joined successfully.</message>
<meeting_id>replace-with-internal-meeting-id</meeting_id>
<user_id>replace-with-user-id</user_id>
<auth_token>replace-with-auth-token</auth_token>
<session_token>replace-with-session-token</session_token>
<url>https://api-guide.bbbserver.com/client/BigBlueButton.html?sessionToken=replace-with-session-token</url>
</response> Відповіді з помилками
| messageKey | Значення |
|---|---|
invalidMeetingIdentifier | Зустріч не існує. |
meetingForciblyEnded | Зустріч було примусово завершено. |
maxParticipantsReached | Досягнуто ліміту учасників. |
guestDeniedAccess | Гостю було відмовлено в доступі. |
invalidPassword | Пароль недійсний. |
checksumError | checksum недійсний. |
mismatchCreateTimeParam | createTime не відповідає зустрічі. |
userNotFound | Не знайдено активного користувача з цим ID (під час використання existingUserID). |
Використання createTime для перевірки URL приєднання
Параметр createTime слугує захистом від застарілих Join URL:
Зустріч створюється та повертає createTime: 1715261728123.
Join URL генерується з createTime=1715261728123.
Зустріч завершується та створюється знову з новим createTime.
Старий Join URL із попереднім createTime відхиляється.
Це запобігає входу користувачів із застарілими посиланнями-запрошеннями до нової зустрічі, яка повторно використовує той самий meetingID.
Поради з безпеки
Ніколи не розкривайте shared secret на стороні клієнта для обчислення URL приєднання. Завжди генеруйте URL приєднання на стороні сервера та передавайте їх клієнту.
- Згенерований URL приєднання містить checksum і має використовуватися лише один раз.
- Join URL слід генерувати на стороні сервера та передавати клієнту.
- Для чутливих зустрічей використовуйте
guest=trueразом ізguestPolicy=ASK_MODERATOR.
Перехід від password до role є однією з найважливіших несумісних змін у BBB 3.0. Обов’язково оновіть свою інтеграцію відповідним чином.
Поширені запитання
role (MODERATOR або VIEWER) замінює призначення ролей на основі пароля, що використовувалося в попередніх версіях. Параметр password є застарілим і більше не повинен використовуватися в нових інтеграціях.existingUserID із внутрішнім ідентифікатором користувача з попередньої сесії для повторного підключення. Ви також можете передати replaceSessionToken, щоб замінити стару сесію. Зверніть увагу, що ці параметри не задокументовані й можуть змінитися без попередження.guest встановлено в true, користувач позначається як гість і підпадає під дію guestPolicy, визначеної під час створення зустрічі. Наприклад, із ASK_MODERATOR модератор повинен схвалити гостя, перш ніж той зможе увійти.userdata-= ) дозволяють передавати користувацькі дані до клієнта зустрічі для кожного користувача окремо. Їх можна використовувати для налаштування поведінки клієнта, передавання інформації плагінам або персоналізації користувацького досвіду.createTime у вашому URL приєднання не збігається зі значенням createTime поточної активної зустрічі. Зазвичай це трапляється, коли зустріч було завершено й створено знову з тим самим meetingID, але URL приєднання все ще містить старий createTime.