Biblioteki klienckie i narzędzia integracyjne
Biblioteki klienckie ukrywają szczegóły obliczania sumy kontrolnej, konstruowania żądań HTTP i parsowania odpowiedzi XML, pozwalając Ci korzystać z API BigBlueButton poprzez typowane metody w wybranym języku programowania. Ten rozdział przedstawia przegląd dostępnych bibliotek, narzędzi integracyjnych i wskazówki dotyczące wyboru odpowiedniego rozwiązania dla Twojego projektu.
Oficjalne biblioteki
Poniższe biblioteki są utrzymywane przez sam projekt BigBlueButton lub przez ściśle powiązanych współtwórców. Zazwyczaj są dobrze utrzymywane i śledzą nowe funkcje API w miarę ich udostępniania.
| Biblioteka | Język | Repozytorium | Uwagi |
|---|---|---|---|
| bigbluebutton-api-php | PHP | GitHub | Oficjalna biblioteka PHP. Używana przez wtyczkę Moodle BBB. Aktywnie utrzymywana. |
| bigbluebutton-api-js | JavaScript / Node.js | GitHub | Oficjalna biblioteka JavaScript do użycia po stronie serwera Node.js. |
Biblioteki społeczności
Te biblioteki są tworzone i utrzymywane przez społeczność. Ich jakość i częstotliwość aktualizacji są różne — przed wdrożeniem zawsze sprawdź stan utrzymania i obsługiwaną wersję BBB.
| Biblioteka | Język | Repozytorium | Uwagi |
|---|---|---|---|
| bigbluebutton-api-python | Python | PyPI | Biblioteka Python utrzymywana przez społeczność. |
| bigbluebutton-api-ruby | Ruby | RubyGems | Z projektu Mconf. Utrzymywana przez społeczność. |
Ta lista nie jest wyczerpująca. Istnieją dodatkowe projekty społecznościowe, które nie zostały tutaj wymienione. Za utrzymanie i aktualność każdej biblioteki odpowiadają jej odpowiedni opiekunowie — przed użyciem w środowisku produkcyjnym zawsze sprawdź, czy dana biblioteka obsługuje docelową wersję BBB.
Narzędzia integracyjne
Oprócz bibliotek klienckich, kilka narzędzi może pomóc w testowaniu, zarządzaniu i skalowaniu wdrożeń BigBlueButton:
| Narzędzie | Opis |
|---|---|
| API Mate (bigbluebutton.org) | Narzędzie internetowe do testowania wywołań API BBB. bigbluebutton.org/api-mate/ |
| API Mate (Mconf) | Alternatywne internetowe narzędzie do testowania API. mconf.github.io/api-mate/ |
| bbb-conf | Narzędzie CLI na serwerze BBB. Wyświetla sekret, URL i status za pomocą bbb-conf --secret. |
| Greenlight | Oficjalny frontend BBB zbudowany z użyciem Ruby on Rails. Wewnętrznie używa API do zarządzania pokojami i spotkaniami. |
| Scalelite | Moduł równoważenia obciążenia dla wielu serwerów BBB. Przekazuje i rozdziela wywołania API między dostępne instancje. |
Wybór biblioteki
Przy ocenie biblioteki klienckiej do swojego projektu weź pod uwagę następujące kryteria:
- Obsługa wersji BBB: Czy biblioteka obsługuje funkcje BBB 3.0, takie jak
rolezamiastpassword,sendChatMessageiclientSettingsOverride? - Algorytm sumy kontrolnej: Czy biblioteka obsługuje SHA-256 i SHA-512, czy tylko starszy SHA-1?
- Obsługa POST: Czy biblioteka potrafi wysyłać treści XML (wymagane do przesyłania prezentacji i
clientSettingsOverride)? - Status utrzymania: Kiedy był ostatni commit? Czy są nierozwiązane zgłoszenia bez żadnej odpowiedzi?
- Obsługa webhooków: Czy biblioteka oferuje funkcje pomocnicze do rejestracji webhooków i walidacji callbacków?
Jeśli potrzebujesz tylko podstawowych operacji, takich jak tworzenie i dołączanie do spotkań, pełnofunkcyjna biblioteka może nie być konieczna. Lekka własna integracja może być prostsza w utrzymaniu i łatwiejsza do audytu.
Tworzenie własnej integracji
Jeśli żadna z istniejących bibliotek nie spełnia Twoich wymagań, możesz zbudować własną integrację w dowolnym języku obsługującym HTTP. Główna logika składa się z trzech elementów:
Funkcja sumy kontrolnej — oblicz hash SHA-256 na podstawie nazwy wywołania API, ciągu zapytania i współdzielonego sekretu. Przykłady implementacji w wielu językach znajdziesz w rozdziale o uwierzytelnianiu sumą kontrolną.
HTTP GET/POST — wyślij żądanie na adres URL API BBB z dołączoną sumą kontrolną jako parametrem zapytania.
Parsowanie XML — przeanalizuj odpowiedź XML i sprawdź pole returncode pod kątem SUCCESS lub FAILED.
W przypadku prostych integracji, które potrzebują tylko create i join, można to osiągnąć zaledwie kilkoma liniami kodu — pełna biblioteka nie jest bezwzględnie konieczna.
# 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) Zawsze generuj wywołania API po stronie serwera. Współdzielony sekret nigdy nie może być ujawniony w kodzie po stronie klienta, takim jak JavaScript uruchamiany w przeglądarce lub w aplikacjach mobilnych.