Розділ 20 POST

insertDocument – Вставити презентацію

Ендпойнт insertDocument дає змогу завантажити одну або кілька презентацій у вже запущену зустріч BigBlueButton без переривання поточного доповідача. Документи обробляються у фоновому режимі та стають доступними як додаткові презентації, на які доповідач може перемкнутися будь-коли.

Цей ендпойнт лише побіжно задокументований в офіційній документації API BigBlueButton. Деталі щодо кодів помилок, обмежень розміру файлів і точної XML відповіді офіційно не визначені. undocumented

Ендпоінт

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

Цей ендпойнт вимагає запит POST із тілом XML. Дані документа надсилаються в тілі запиту, а не як параметри URL.

Параметри URL

Параметр Тип Обов’язково За замовчуванням Опис
meetingID String Так Ідентифікатор активної зустрічі, яка має отримати документ.

Тіло XML — атрибути документа

Тіло запиту має містити структуру XML з елементом <module name="presentation">, що обгортає один або кілька елементів <document>. Кожен документ можна завантажити або за URL, або як вбудований вміст Base64.

Атрибут Тип Обов’язково За замовчуванням Опис
url String Ні URL, що вказує на файл презентації. Використовується для завантаження за URL. Сервер отримує файл за цією URL-адресою.
filename String Ні Ім’я файлу для завантажень за URL. Допомагає визначити тип файлу, коли URL не містить розширення файлу.
name String Ні Ім’я файлу для вбудованих завантажень Base64. При використанні цього атрибута текст елемента має містити вміст файлу, закодований у Base64.
current Boolean Ні false Якщо встановлено значення true, цю презентацію буде негайно активовано як поточну після завантаження.
downloadable Boolean Ні false Якщо встановлено значення true, учасникам дозволяється завантажувати файл презентації.
removable Boolean Ні true Якщо встановлено значення true, доповідачу дозволяється видаляти презентацію із зустрічі.

Приклад запиту — завантаження за URL

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>'

Приклад запиту — вбудоване завантаження Base64

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>'

Приклад відповіді

Успішний виклик повертає такий XML:

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

Відповідь SUCCESS підтверджує, що документ було прийнято до обробки. Вона не гарантує, що перетворення файлу успішно завершилося. Чи повідомляються помилки перетворення назад через відповідь API, офіційно не задокументовано. undocumented

Порівняння із завантаженням презентації create

Ви також можете завантажувати презентації під час створення зустрічі за допомогою кінцевої точки create. Наступна таблиця підкреслює відмінності між двома підходами:

Аспект create insertDocument
Час До початку зустрічі Поки зустріч триває
Переривання Немає (перший слайд завантажується під час приєднання) Немає (фонове завантаження)
current атрибут Підтримується Підтримується
Кілька документів Підтримується Підтримується

Поради

Якщо ви хочете, щоб нова презентація стала активною негайно, встановіть current="true" в елементі document. Інакше доповідач повинен буде вручну перемкнутися на неї за допомогою селектора презентації в інтерфейсі зустрічі.

  • Тут також підтримуються ті самі формати файлів, що й для звичайного завантаження презентацій (PDF, PPTX, DOCX, зображення тощо).
  • Ви можете вставити кілька документів в одному запиті, додавши більше елементів document усередині блоку module.
  • Для завантажень за URL завжди встановлюйте атрибут filename, якщо URL не містить розпізнаваного розширення файлу. Це допомагає BigBlueButton визначити правильний тип файлу.
  • Для великих файлів рекомендується завантаження за URL замість вбудованого завантаження Base64, щоб зменшити розмір payload запиту.

Випадки використання

  • Динамічно надавайте слайди з LMS або системи керування контентом під час живої сесії.
  • Додавайте допоміжні матеріали до зустрічі після того, як вона вже почалася.
  • Створюйте автоматизованих ботів, які вставляють порядки денні, нотатки зустрічі або звіти в поточні зустрічі.
  • Дозвольте зовнішнім системам надсилати оновлений вміст без потреби для доповідача залишати зустріч.
На bbbserver.de ця кінцева точка доступна в усіх тарифних планах. Ви можете викликати її, використовуючи свої API-облікові дані, які можна знайти на панелі керування сервером. Застосовуються ті самі обмеження на розмір файлів, що й для звичайного завантаження презентацій.

Поширені запитання

Ендпойнт insertDocument доступний у BigBlueButton 2.5 і новіших версіях. У старіших версіях, таких як 2.4 або раніше, він недоступний.

Так, якщо атрибут removable було встановлено в true (це значення за замовчуванням). Доповідач може видалити презентацію через інтерфейс зустрічі. Окремого API-ендпойнта для видалення презентації із запущеної зустрічі немає.

API поверне відповідь FAILED, яка вказує, що зустріч не знайдено. Документи можна вставляти лише в зустрічі, які зараз виконуються.

Підтримуються ті самі формати, що й для звичайного завантаження презентацій, включно з PDF, PPTX, DOCX, ODT та поширеними форматами зображень. Сервер внутрішньо перетворює файли не-PDF у PDF за допомогою LibreOffice.

Обмеження розміру файлів визначаються конфігурацією сервера BigBlueButton. Точні ліміти через API не вказані та залежать від налаштувань на стороні сервера. Зверніться до адміністратора вашого сервера для деталей.

Ви можете націлитися на breakout room, використовуючи його специфічний meetingID. Кожна breakout room має власний унікальний ідентифікатор зустрічі, який можна отримати через ендпойнт getMeetings або getMeetingInfo.

Ні. Відповідь SUCCESS лише підтверджує, що сервер прийняв документ до обробки. Чи було перетворення успішним, у відповіді API надійно не повідомляється. Ця поведінка офіційно не задокументована.
Посібник з API BigBlueButton