Bölüm 20 POST

insertDocument – Sunum Ekle

insertDocument uç noktası, mevcut sunucuyu kesintiye uğratmadan, hâlihazırda çalışmakta olan bir BigBlueButton toplantısına bir veya daha fazla sunum yüklemenize olanak tanır. Belgeler arka planda işlenir ve sunucunun istediği zaman geçiş yapabileceği ek sunumlar olarak kullanılabilir hâle gelir.

Bu uç nokta resmi BigBlueButton API belgelerinde yalnızca sınırlı ölçüde belgelenmiştir. Hata kodları, dosya boyutu sınırları ve tam yanıt XML ile ilgili ayrıntılar resmi olarak belirtilmemiştir. undocumented

Uç Nokta

POST https://api-guide.bbbserver.com/bigbluebutton/api/insertDocument?meetingID=replace-with-meeting-id&checksum=replace-with-checksum
Content-Type: application/xml

Bu uç nokta, POST gövdesine sahip bir XML isteği gerektirir. Belge verileri URL parametreleri olarak değil, istek gövdesinde gönderilir.

URL Parametreleri

Parametre Tür Gerekli Varsayılan Açıklama
meetingID String Evet Belgeyi alması gereken çalışan toplantının toplantı tanımlayıcısı.

XML Gövdesi — Belge Öznitelikleri

İstek gövdesi, bir veya daha fazla XML öğesini saran bir <module name="presentation"> öğesi içeren bir <document> yapısı içermelidir. Her belge, URL ile veya satır içi Base64 içeriği olarak yüklenebilir.

Öznitelik Tür Gerekli Varsayılan Açıklama
url String Hayır Sunum dosyasını gösteren URL. URL tabanlı yüklemelerde kullanılır. Sunucu dosyayı bu URL'den alır.
filename String Hayır URL tabanlı yüklemeler için dosya adı. URL bir dosya uzantısı içermediğinde dosya türünün algılanmasına yardımcı olur.
name String Hayır Base64 satır içi yüklemeleri için dosya adı. Bu öznitelik kullanıldığında, öğe metni Base64 ile kodlanmış dosya içeriğini içermelidir.
current Boolean Hayır false true olarak ayarlandığında, bu sunum yüklemeden hemen sonra geçerli sunum olarak etkinleştirilir.
downloadable Boolean Hayır false true olarak ayarlandığında, katılımcıların sunum dosyasını indirmesine izin verilir.
removable Boolean Hayır true true olarak ayarlandığında, sunum yapan kişinin sunumu toplantıdan kaldırmasına izin verilir.

Örnek İstek — URL Tabanlı Yükleme

curl --request POST \
    --url "https://api-guide.bbbserver.com/bigbluebutton/api/insertDocument?meetingID=replace-with-meeting-id&checksum=replace-with-checksum" \
  --header "Content-Type: application/xml" \
  --data '<?xml version="1.0" encoding="UTF-8"?>
<modules>
  <module name="presentation">
        <document url="https://api-guide.bbbserver.com/files/slides.pdf" filename="slides.pdf"
              downloadable="true" removable="true" current="true"/>
  </module>
</modules>'

Örnek İstek — Base64 Satır İçi Yükleme

curl --request POST \
    --url "https://api-guide.bbbserver.com/bigbluebutton/api/insertDocument?meetingID=replace-with-meeting-id&checksum=replace-with-checksum" \
  --header "Content-Type: application/xml" \
  --data '<?xml version="1.0" encoding="UTF-8"?>
<modules>
  <module name="presentation">
    <document name="inline-slides.pdf">
      JVBERi0xLjQK... (Base64-encoded content)
    </document>
  </module>
</modules>'

Örnek Yanıt

Başarılı bir çağrı aşağıdaki XML değerini döndürür:

<response>
  <returncode>SUCCESS</returncode>
</response>

Bir SUCCESS yanıtı, belgenin işlenmek üzere kabul edildiğini doğrular. Dosya dönüştürmenin başarıyla tamamlandığını garanti etmez. Dönüştürme hatalarının API yanıtı üzerinden geri bildirilip bildirilmediği resmi olarak belgelenmemiştir. undocumented

create Sunum Yükleme ile Karşılaştırma

Sunumları toplantı oluşturulurken create uç noktasıyla da yükleyebilirsiniz. Aşağıdaki tablo iki yaklaşım arasındaki farkları vurgular:

Yön create insertDocument
Zamanlama Toplantı başlamadan önce Toplantı çalışırken
Kesinti Yok (ilk slayt katılım sırasında yüklenir) Yok (arka plan yükleme)
current öznitelik Desteklenir Desteklenir
Birden fazla belge Desteklenir Desteklenir

İpuçları

Yeni sunumun hemen etkin hale gelmesini istiyorsanız, belge öğesinde current="true" ayarını yapın. Aksi takdirde sunucunun toplantı arayüzündeki sunum seçicisini kullanarak buna manuel olarak geçmesi gerekir.

  • Normal sunum yüklemede desteklenen aynı dosya biçimleri burada da desteklenir (PDF, PPTX, DOCX, görseller vb.).
  • Modül bloğu içine daha fazla belge öğesi ekleyerek tek bir istekte birden fazla belge ekleyebilirsiniz.
  • URL tabanlı yüklemelerde, URL tanınabilir bir dosya uzantısı içermediğinde filename özniteliğini her zaman ayarlayın. Bu, BigBlueButton'nin doğru dosya türünü belirlemesine yardımcı olur.
  • Büyük dosyalar için, istek yükünü küçük tutmak amacıyla Base64 satır içi yükleme yerine URL tabanlı yükleme önerilir.

Kullanım Senaryoları

  • Canlı oturum sırasında bir LMS veya içerik yönetim sisteminden slaytları dinamik olarak sunun.
  • Toplantı başladıktan sonra toplantıya ek materyal ekleyin.
  • Gündemleri, toplantı notlarını veya raporları devam eden toplantılara ekleyen otomatik botlar oluşturun.
  • Dış sistemlerin, sunucunun toplantıdan ayrılmasını gerektirmeden güncellenmiş içerik göndermesine izin verin.
bbbserver.de üzerinde bu uç nokta tüm planlarda kullanılabilir. Sunucu yönetim panelinde bulunan API kimlik bilgilerinizle bunu çağırabilirsiniz. Normal sunum yüklemeleriyle aynı dosya boyutu sınırları geçerlidir.

Sıkça Sorulan Sorular

insertDocument uç noktası BigBlueButton 2.5 ve sonraki sürümlerde kullanılabilir. 2.4 veya daha eski sürümler gibi eski sürümlerde kullanılamaz.

Evet, eğer removable özniteliği true olarak ayarlandıysa (varsayılan budur). Sunum yapan kişi, toplantı arayüzü üzerinden sunumu kaldırabilir. Çalışan bir toplantıdan sunumu kaldırmak için özel bir API uç noktası yoktur.

API, toplantının bulunamadığını belirten bir FAILED yanıtı döndürecektir. Belgeler yalnızca o anda çalışmakta olan toplantılara eklenebilir.

Normal sunum yüklemedeki aynı biçimler desteklenir; buna PDF, PPTX, DOCX, ODT ve yaygın görsel biçimleri dahildir. Sunucu, PDF olmayan dosyaları dahili olarak PDF kullanarak LibreOffice'ye dönüştürür.

Dosya boyutu sınırları BigBlueButton sunucu yapılandırması tarafından belirlenir. Kesin sınırlar API üzerinden belirtilmez ve sunucu tarafı ayarlara bağlıdır. Ayrıntılar için sunucu yöneticinizle iletişime geçin.

Belirli meetingID değerini kullanarak bir grup odasını hedefleyebilirsiniz. Her grup odasının, getMeetings veya getMeetingInfo uç noktası aracılığıyla elde edilebilen kendine özgü bir toplantı tanımlayıcısı vardır.

Hayır. Bir SUCCESS yanıtı yalnızca sunucunun belgeyi işlenmek üzere kabul ettiğini doğrular. Dönüştürmenin başarılı olup olmadığı API yanıtında güvenilir şekilde bildirilmez. Bu davranış resmi olarak belgelenmemiştir.