Розділ 22

Клієнтські бібліотеки та інструменти інтеграції

Клієнтські бібліотеки приховують деталі обчислення контрольної суми, побудови HTTP-запитів і розбору XML-відповідей, дозволяючи вам взаємодіяти з API BigBlueButton через типізовані методи у вибраній вами мові програмування. У цьому розділі подано огляд доступних бібліотек, інструментів інтеграції та рекомендації щодо вибору правильного варіанта для вашого проєкту.

Офіційні бібліотеки

Наведені нижче бібліотеки підтримуються самим проєктом BigBlueButton або тісно пов’язаними учасниками. Зазвичай вони добре підтримуються й відстежують нові можливості API у міру їх випуску.

Бібліотека Мова Репозиторій Примітки
bigbluebutton-api-php PHP GitHub Офіційна бібліотека PHP. Використовується плагіном Moodle BBB. Активно підтримується.
bigbluebutton-api-js JavaScript / Node.js GitHub Офіційна бібліотека JavaScript для серверного використання Node.js.

Бібліотеки спільноти

Ці бібліотеки розробляються та підтримуються спільнотою. Їхня якість і частота оновлень відрізняються — завжди перевіряйте стан підтримки та підтримувану версію BBB, перш ніж обирати одну з них.

Бібліотека Мова Репозиторій Примітки
bigbluebutton-api-python Python PyPI Бібліотека Python, яку підтримує спільнота.
bigbluebutton-api-ruby Ruby RubyGems Від проєкту Mconf. Підтримується спільнотою.

Цей список не є вичерпним. Існують додаткові проєкти спільноти, які тут не перелічені. Відповідальність за підтримку й актуальність кожної бібліотеки несуть її відповідні супроводжувачі — завжди перевіряйте, чи підтримує бібліотека цільову версію BBB, перш ніж використовувати її у production.

Інструменти інтеграції

Окрім клієнтських бібліотек, кілька інструментів можуть допомогти вам тестувати, керувати та масштабувати розгортання BigBlueButton:

Інструмент Опис
API Mate (bigbluebutton.org) Вебінструмент для тестування викликів BBB API. bigbluebutton.org/api-mate/
API Mate (Mconf) Альтернативний вебінструмент для тестування API. mconf.github.io/api-mate/
bbb-conf Інструмент CLI на сервері BBB. Показує секрет, URL і статус через bbb-conf --secret.
Greenlight Офіційний інтерфейс BBB, побудований на Ruby on Rails. Внутрішньо використовує API для керування кімнатами та зустрічами.
Scalelite Балансувальник навантаження для кількох серверів BBB. Переспрямовує та розподіляє виклики API між доступними екземплярами.

Вибір бібліотеки

Оцінюючи клієнтську бібліотеку для вашого проєкту, врахуйте такі критерії:

  • Підтримка версій BBB: Чи підтримує бібліотека можливості BBB 3.0, такі як role замість password, sendChatMessage і clientSettingsOverride?
  • Алгоритм контрольної суми: Чи підтримує бібліотека SHA-256 і SHA-512, чи лише застарілий SHA-1?
  • Підтримка POST: Чи може бібліотека надсилати тіла XML (потрібні для завантаження презентацій і clientSettingsOverride)?
  • Стан підтримки: Коли був останній коміт? Чи є невирішені проблеми без жодної відповіді?
  • Підтримка webhook: Чи пропонує бібліотека допоміжні функції для реєстрації webhook і перевірки callback?

Якщо вам потрібні лише базові операції, як-от створення зустрічей і приєднання до них, повнофункціональна бібліотека може бути не потрібна. Легка кастомна інтеграція може бути простішою в підтримці та легшою для аудиту.

Створення власної інтеграції

Якщо жодна з наявних бібліотек не відповідає вашим вимогам, ви можете створити власну інтеграцію будь-якою мовою, що підтримує HTTP. Основна логіка складається з трьох компонентів:

Функція контрольної суми — обчисліть хеш SHA-256 з імені виклику API, рядка запиту та спільного секрету. Зверніться до розділу про автентифікацію контрольної суми для прикладів реалізації різними мовами.

HTTP GET/POST — надсилає запит до URL BBB API з контрольною сумою, доданою як параметр запиту.

Розбір XML — розберіть відповідь XML і перевірте поле returncode на SUCCESS або FAILED.

Для простих інтеграцій, яким потрібні лише create і join, цього можна досягти лише кількома рядками коду — повна бібліотека не є строго необхідною.

# Minimal example: create + join (pseudocode)

secret = "replace-with-secret"
base   = "https://api-guide.bbbserver.com/bigbluebutton/api"

# 1. Build query string
params = "name=Demo&meetingID=replace-with-meeting-id&attendeePW=replace-with-password&moderatorPW=replace-with-password"

# 2. Compute checksum
checksum = sha256("create" + params + secret)

# 3. Send request
response = http_get(base + "/create?" + params + "&checksum=" + checksum)

# 4. Parse XML response
if parse_xml(response).returncode == "SUCCESS":
    # Build join URL for a moderator
    join_params = "fullName=Admin&meetingID=demo-1&role=MODERATOR"
    join_checksum = sha256("join" + join_params + secret)
    redirect_to(base + "/join?" + join_params + "&checksum=" + join_checksum)

Завжди генеруйте API-виклики на стороні сервера. Спільний секрет ніколи не повинен розкриватися в клієнтському коді, наприклад у JavaScript, що виконується в браузері, або в мобільних застосунках.

Поширені запитання

Ні. Клієнтська бібліотека зручна, але не є обов’язковою. API використовує прості HTTP-запити GET/POST з параметром контрольної суми. Будь-яка мова, яка може виконувати HTTP-запити, обчислювати хеш SHA-256 і розбирати XML, може взаємодіяти з API безпосередньо.

Офіційна бібліотека bigbluebutton-api-php є рекомендованим вибором. Вона активно підтримується проєктом BBB і використовується плагіном Moodle BigBlueButton.

Так. Спільнота створила бібліотеки для додаткових мов, таких як Java, .NET і Go. Пошукайте репозиторії пакетів для вашої мови або перегляньте форуми спільноти BigBlueButton для рекомендацій.

Використовуйте API Mate — вебінструмент, який дозволяє вам інтерактивно створювати та надсилати виклики BBB API. Ви вводите URL-адресу сервера та спільний секрет, вибираєте кінцеву точку, заповнюєте параметри, а інструмент генерує контрольну суму і надсилає запит за вас.

Greenlight — це повноцінний вебзастосунок (frontend) для керування кімнатами та зустрічами BigBlueButton. Клієнтська бібліотека — це пакет коду, який ви використовуєте у власному застосунку для програмного виконання API-викликів. Greenlight внутрішньо використовує клієнтську бібліотеку.

Scalelite — це балансувальник навантаження, який розподіляє API-виклики між кількома серверами BigBlueButton. Він потрібен вам, коли один сервер не може обробити очікувану кількість одночасних зустрічей або учасників. Він діє як прозорий проксі — ваш застосунок надсилає API-виклики до Scalelite, а той маршрутизує їх на доступний сервер BBB.
Посібник з API BigBlueButton