Rozdział 22

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 role zamiast password, sendChatMessage i clientSettingsOverride?
  • 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.

Najczęściej zadawane pytania

Nie. Biblioteka kliencka jest wygodna, ale nie jest wymagana. API używa prostych żądań HTTP GET/POST z parametrem sumy kontrolnej. Każdy język, który potrafi wykonywać żądania HTTP, obliczać hash SHA-256 i parsować XML, może bezpośrednio współpracować z API.

Oficjalna biblioteka bigbluebutton-api-php jest zalecanym wyborem. Jest aktywnie utrzymywana przez projekt BBB i jest używana przez wtyczkę Moodle BigBlueButton.

Tak. Społeczność stworzyła biblioteki dla dodatkowych języków, takich jak Java, .NET i Go. Szukaj w repozytoriach pakietów dla swojego języka lub sprawdź fora społeczności BigBlueButton, aby uzyskać rekomendacje.

Użyj API Mate, narzędzia webowego, które pozwala interaktywnie konstruować i wysyłać wywołania API BBB. Wprowadzasz URL serwera i współdzielony sekret, wybierasz endpoint, uzupełniasz parametry, a narzędzie generuje sumę kontrolną i wysyła żądanie za Ciebie.

Greenlight to kompletna aplikacja webowa (frontend) do zarządzania pokojami i spotkaniami BigBlueButton. Biblioteka kliencka to pakiet kodu, którego używasz we własnej aplikacji do programistycznego wykonywania wywołań API. Greenlight używa wewnętrznie biblioteki klienckiej.

Scalelite to load balancer, który rozdziela wywołania API pomiędzy wiele serwerów BigBlueButton. Potrzebujesz go, gdy pojedynczy serwer nie jest w stanie obsłużyć oczekiwanej liczby jednoczesnych spotkań lub uczestników. Działa jako przezroczysty proxy — Twoja aplikacja wysyła wywołania API do Scalelite, a on kieruje je do dostępnego serwera BBB.