İstemci Kütüphaneleri ve Entegrasyon Araçları
İstemci kütüphaneleri; checksum hesaplama, HTTP istek oluşturma ve XML yanıt ayrıştırma ayrıntılarını soyutlayarak, tercih ettiğiniz programlama dilinde yazılmış tipli yöntemler aracılığıyla BigBlueButton API ile etkileşim kurmanızı sağlar. Bu bölüm, mevcut kütüphanelere, entegrasyon araçlarına ve projeniz için doğru seçeneği belirlemeye yönelik rehberliğe genel bir bakış sunar.
Resmî Kütüphaneler
Aşağıdaki kütüphaneler doğrudan BigBlueButton projesi veya yakından ilişkili katkıda bulunanlar tarafından sürdürülmektedir. Genellikle iyi bakılırlar ve yayımlandıkça yeni API özelliklerini takip ederler.
| Kütüphane | Dil | Depo | Notlar |
|---|---|---|---|
| bigbluebutton-api-php | PHP | GitHub | Resmî PHP kütüphanesi. Moodle BBB eklentisi tarafından kullanılır. Aktif olarak sürdürülmektedir. |
| bigbluebutton-api-js | JavaScript / Node.js | GitHub | Sunucu tarafı JavaScript kullanımı için resmî Node.js kütüphanesi. |
Topluluk Kütüphaneleri
Bu kütüphaneler topluluk tarafından geliştirilir ve sürdürülür. Kaliteleri ve güncelleme sıklıkları değişkenlik gösterir — birini benimsemeden önce her zaman bakım durumunu ve desteklenen BBB sürümünü kontrol edin.
| Kütüphane | Dil | Depo | Notlar |
|---|---|---|---|
| bigbluebutton-api-python | Python | PyPI | Topluluk tarafından sürdürülen Python kütüphanesi. |
| bigbluebutton-api-ruby | Ruby | RubyGems | Mconf projesinden. Topluluk tarafından sürdürülmektedir. |
Bu liste kapsamlı değildir. Burada listelenmeyen ek topluluk projeleri de vardır. Her kütüphanenin bakımı ve güncelliği ilgili bakımcılarının sorumluluğundadır — üretimde kullanmadan önce bir kütüphanenin hedef BBB sürümünüzü desteklediğini her zaman doğrulayın.
Entegrasyon Araçları
İstemci kütüphanelerinin ötesinde, birkaç araç BigBlueButton kurulumlarını test etmenize, yönetmenize ve ölçeklendirmenize yardımcı olabilir:
| Araç | Açıklama |
|---|---|
| API Mate (bigbluebutton.org) | BBB API çağrılarını test etmek için web tabanlı araç. bigbluebutton.org/api-mate/ |
| API Mate (Mconf) | Alternatif web tabanlı API test aracı. mconf.github.io/api-mate/ |
| bbb-conf | BBB sunucusundaki CLI aracı. Gizli anahtarı, URL'yi ve durumu bbb-conf --secret aracılığıyla görüntüler. |
| Greenlight | Ruby on Rails ile oluşturulmuş resmî BBB frontend'i. Oda ve toplantıları yönetmek için API'yi dahili olarak kullanır. |
| Scalelite | Birden fazla BBB sunucusu için yük dengeleyici. API çağrılarını mevcut örnekler arasında iletir ve dağıtır. |
Bir Kütüphane Seçmek
Projeniz için bir istemci kütüphanesini değerlendirirken aşağıdaki ölçütleri göz önünde bulundurun:
- BBB sürüm desteği: Kütüphane; BBB 3.0 yerine
role,passwordvesendChatMessagegibiclientSettingsOverrideözelliklerini destekliyor mu? - Checksum algoritması: Kütüphane SHA-256 ve SHA-512 destekliyor mu, yoksa yalnızca eski SHA-1 mi?
- POST desteği: Kütüphane XML gövdeleri gönderebiliyor mu (sunum yüklemeleri ve
clientSettingsOverrideiçin gereklidir)? - Bakım durumu: Son commit ne zaman yapıldı? Yanıtsız kalmış çözülmemiş sorunlar var mı?
- Webhook desteği: Kütüphane, webhook kaydı ve callback doğrulaması için yardımcı işlevler sunuyor mu?
Yalnızca toplantı oluşturma ve toplantıya katılma gibi temel işlemlere ihtiyacınız varsa, tam özellikli bir kütüphane gerekli olmayabilir. Hafif bir özel entegrasyonun bakımı daha kolay ve denetimi daha rahat olabilir.
Özel Bir Entegrasyon Geliştirmek
Mevcut kütüphanelerin hiçbiri gereksinimlerinize uymuyorsa, HTTP destekleyen herhangi bir dille kendi entegrasyonunuzu oluşturabilirsiniz. Temel mantık üç bileşenden oluşur:
Checksum işlevi — API çağrısı adı, sorgu dizesi ve paylaşılan gizli anahtardan SHA-256 hash'ini hesaplayın. Birden çok dilde uygulama örnekleri için checksum kimlik doğrulama bölümüne bakın.
HTTP GET/POST — isteği, checksum bir sorgu parametresi olarak eklenmiş şekilde BBB API URL'sine gönderin.
XML ayrıştırma — yanıt XML'sini ayrıştırın ve returncode alanını SUCCESS veya FAILED için kontrol edin.
Yalnızca create ve join gerektiren basit entegrasyonlar için bu, sadece birkaç satır kodla gerçekleştirilebilir — tam bir kütüphane kesinlikle gerekli değildir.
# 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 çağrılarını her zaman sunucu tarafında oluşturun. Paylaşılan gizli anahtar, tarayıcıda çalışan JavaScript veya mobil uygulamalar gibi istemci tarafı kodunda asla açığa çıkarılmamalıdır.