insertDocument – Inserisci presentazione
L'endpoint insertDocument ti consente di caricare una o più presentazioni in una riunione BigBlueButton già in esecuzione senza interrompere il presentatore corrente. I documenti vengono elaborati in background e diventano disponibili come presentazioni aggiuntive alle quali il presentatore può passare in qualsiasi momento.
Questo endpoint è documentato solo in modo leggero nella documentazione ufficiale dell'API BigBlueButton. I dettagli su codici di errore, limiti di dimensione dei file e il formato esatto della risposta XML non sono specificati ufficialmente. undocumented
Endpoint
POST https://api-guide.bbbserver.com/bigbluebutton/api/insertDocument?meetingID=replace-with-meeting-id&checksum=replace-with-checksum
Content-Type: application/xml Questo endpoint richiede una richiesta POST con un body XML. I dati del documento vengono inviati nel body della richiesta, non come parametri URL.
Parametri URL
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
meetingID | String | Sì | — | L'identificatore della riunione in esecuzione che deve ricevere il documento. |
Body XML — Attributi del documento
Il body della richiesta deve contenere una struttura XML con un elemento <module name="presentation"> che racchiude uno o più elementi <document>. Ogni documento può essere caricato tramite URL oppure come contenuto Base64 inline.
| Attributo | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
url | String | No | — | URL che punta al file della presentazione. Utilizzato per i caricamenti basati su URL. Il server recupera il file da questo URL. |
filename | String | No | — | Nome file per i caricamenti basati su URL. Aiuta a rilevare il tipo di file quando l'URL non contiene un'estensione del file. |
name | String | No | — | Nome file per caricamenti inline Base64. Quando si usa questo attributo, il testo dell'elemento deve contenere il contenuto del file codificato in Base64. |
current | Boolean | No | false | Se impostato su true, questa presentazione viene attivata immediatamente come presentazione corrente dopo il caricamento. |
downloadable | Boolean | No | false | Se impostato su true, i partecipanti sono autorizzati a scaricare il file della presentazione. |
removable | Boolean | No | true | Se impostato su true, il presentatore è autorizzato a rimuovere la presentazione dalla riunione. |
Esempio di richiesta — Caricamento basato su 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>' Richiesta di esempio — Caricamento inline 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>' Risposta di esempio
Una chiamata riuscita restituisce il seguente XML:
<response>
<returncode>SUCCESS</returncode>
</response> Una risposta SUCCESS conferma che il documento è stato accettato per l'elaborazione. Non garantisce che la conversione del file sia stata completata con successo. Se gli errori di conversione vengano riportati tramite la risposta API non è documentato ufficialmente. undocumented
Confronto con il caricamento della presentazione create
Puoi anche caricare presentazioni durante la creazione della riunione utilizzando l'endpoint create. La tabella seguente evidenzia le differenze tra i due approcci:
| Aspetto | create | insertDocument |
|---|---|---|
| Tempistica | Prima dell'inizio della riunione | Mentre la riunione è in corso |
| Interruzione | Nessuna (la prima diapositiva viene caricata all'accesso) | Nessuna (caricamento in background) |
current attributo | Supportato | Supportato |
| Documenti multipli | Supportato | Supportato |
Suggerimenti
Se vuoi che la nuova presentazione diventi attiva immediatamente, imposta current="true" sull'elemento document. Altrimenti il presentatore dovrà passare manualmente ad essa usando il selettore delle presentazioni nell'interfaccia della riunione.
- Gli stessi formati di file supportati dal normale caricamento delle presentazioni sono supportati anche qui (PDF, PPTX, DOCX, immagini, ecc.).
- Puoi inserire più documenti in una singola richiesta aggiungendo altri elementi document all'interno del blocco module.
- Per i caricamenti basati su URL, imposta sempre l'attributo
filenamequando l'URL non contiene un'estensione di file riconoscibile. Questo aiuta BigBlueButton a determinare il tipo di file corretto. - Per file di grandi dimensioni, è consigliato il caricamento tramite URL invece del caricamento inline Base64 per mantenere ridotto il payload della richiesta.
Casi d’uso
- Distribuisci dinamicamente diapositive da un LMS o da un sistema di gestione dei contenuti durante una sessione dal vivo.
- Aggiungi materiale supplementare a una riunione dopo che è già iniziata.
- Crea bot automatizzati che inseriscono ordini del giorno, note della riunione o report nelle riunioni in corso.
- Consenti ai sistemi esterni di inviare contenuti aggiornati senza richiedere al presentatore di lasciare la riunione.
Domande frequenti
insertDocument è disponibile in BigBlueButton 2.5 e versioni successive. Non è disponibile nelle versioni precedenti come 2.4 o antecedenti.removable è stato impostato su true (che è il valore predefinito). Il presentatore può rimuovere la presentazione tramite l'interfaccia della riunione. Non esiste un endpoint API dedicato per rimuovere una presentazione da una riunione in corso.FAILED che indica che la riunione non è stata trovata. I documenti possono essere inseriti solo nelle riunioni attualmente in esecuzione.meetingID. Ogni breakout room ha il proprio identificatore univoco della riunione che può essere ottenuto tramite l'endpoint getMeetings o getMeetingInfo.SUCCESS conferma solo che il server ha accettato il documento per l'elaborazione. Il fatto che la conversione sia riuscita non viene riportato in modo affidabile nella risposta API. Questo comportamento non è documentato ufficialmente.