Клиентские библиотеки и инструменты интеграции
Клиентские библиотеки скрывают детали вычисления checksum, построения 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, прежде чем использовать её в продакшене.
Инструменты интеграции
Помимо клиентских библиотек, несколько инструментов могут помочь вам тестировать, управлять и масштабировать развертывания 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? - Алгоритм checksum: Поддерживает ли библиотека SHA-256 и SHA-512 или только устаревший SHA-1?
- Поддержка POST: Может ли библиотека отправлять тела XML (необходимо для загрузки презентаций и
clientSettingsOverride)? - Статус сопровождения: Когда был последний коммит? Есть ли нерешённые проблемы без какого-либо ответа?
- Поддержка webhook: Предлагает ли библиотека вспомогательные функции для регистрации webhook и проверки callback-запросов?
Если вам нужны только базовые операции, такие как создание встреч и присоединение к ним, полнофункциональная библиотека может быть не нужна. Лёгкая пользовательская интеграция может быть проще в сопровождении и легче для аудита.
Создание собственной интеграции
Если ни одна из существующих библиотек не соответствует вашим требованиям, вы можете создать собственную интеграцию на любом языке с поддержкой HTTP. Основная логика состоит из трёх компонентов:
Функция checksum — вычисляет хеш SHA-256 из имени вызова API, строки запроса и общего секрета. См. главу об аутентификации по checksum для примеров реализации на разных языках.
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, выполняемом в браузере, или в мобильных приложениях.