Клієнтські бібліотеки та інструменти інтеграції
Клієнтські бібліотеки приховують деталі обчислення контрольної суми, побудови 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, що виконується в браузері, або в мобільних застосунках.