Bölüm 22

İ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, password ve sendChatMessage gibi clientSettingsOverride ö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 clientSettingsOverride iç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.

Sıkça Sorulan Sorular

Hayır. Bir istemci kütüphanesi kullanışlıdır ancak gerekli değildir. API, checksum parametresi içeren basit HTTP GET/POST istekleri kullanır. HTTP isteği yapabilen, SHA-256 hash'i hesaplayabilen ve XML ayrıştırabilen herhangi bir dil API ile doğrudan etkileşim kurabilir.

Resmî bigbluebutton-api-php kütüphanesi önerilen seçimdir. BBB projesi tarafından aktif olarak sürdürülür ve Moodle BigBlueButton eklentisi tarafından kullanılır.

Evet. Topluluk; Java, .NET ve Go gibi ek diller için kütüphaneler oluşturdu. Diliniz için paket depolarında arama yapın veya öneriler için BigBlueButton topluluk forumlarını kontrol edin.

Etkileşimli olarak BBB API çağrıları oluşturmanıza ve göndermenize olanak tanıyan web tabanlı bir araç olan API Mate'yi kullanın. Sunucu URL'nizi ve paylaşılan gizli anahtarınızı girersiniz, bir uç nokta seçersiniz, parametreleri doldurursunuz; araç checksum'u üretir ve isteği sizin için gönderir.

Greenlight, BigBlueButton oda ve toplantılarını yönetmek için eksiksiz bir web uygulamasıdır (frontend). İstemci kütüphanesi ise kendi uygulamanız içinde API çağrılarını programatik olarak yapmak için kullandığınız bir kod paketidir. Greenlight, dahili olarak bir istemci kütüphanesi kullanır.

Scalelite, API çağrılarını birden fazla BigBlueButton sunucusuna dağıtan bir yük dengeleyicidir. Beklenen eşzamanlı toplantı veya katılımcı sayısını tek bir sunucu karşılayamıyorsa buna ihtiyacınız vardır. Şeffaf bir proxy gibi davranır — uygulamanız API çağrılarını Scalelite'ye gönderir ve o da bunları uygun bir BBB sunucusuna yönlendirir.