“Aggiungi BigBlueButton” a una conferenza già esistente
Questo plugin crea automaticamente una stanza per te quando clicchi su “Aggiungi BigBlueButton”. Tuttavia, potresti voler utilizzare una stanza già esistente (creata prima di installare questo plugin). Ecco due esempi che illustrano perché potresti volerlo fare.
-
Hai già creato una stanza (ad esempio con Greenlight) e desideri permettere agli utenti di partecipare anche da Discourse
-
Consentire anche l’accesso tramite link - Utilizzando Greenlight (l’interfaccia predefinita), viene generato un link condivisibile per partecipare alla chiamata. In questo modo, gli utenti possono accedere sia da Discourse che tramite il link.
Questo è un processo piuttosto invasivo, quindi assicurati davvero di capire cosa stai facendo
Istruzioni
Molto probabilmente l’interfaccia che stai utilizzando (Greenlight?) non fornisce informazioni di basso livello come l’ID della riunione o attendeePW (che è diverso dal codice di accesso alla stanza - lo sappiamo, è confuso). Quindi, per ottenerle, dovremo utilizzare l’API di BBB per elencare tutte le informazioni delle riunioni.
Nota: potrebbe esserci un modo migliore per farlo, ma non ne sono a conoscenza. Fammi sapere se è così.
Prerequisiti
- Accesso al terminale del server BBB (ad esempio tramite SSH)
- Conoscenza di base di Python (per verificare il mio codice)
- Comprensione dei rischi per la sicurezza legati all’uso dell’API di BBB
1. Ottenere il segreto e l’endpoint API di BBB
Accedi a una shell (tramite SSH) sul server BBB in esecuzione ed esegui:
sudo bbb-conf --secret
Questo ti fornirà un URL e un Secret. Saranno utili in seguito.
Chiunque possieda quel segreto può fare cose dannose al tuo server! Quindi tienilo al sicuro.
2. Creare uno script Python3 per ottenere le informazioni della riunione
Di seguito è riportato uno script Python 3 semplice che utilizza il tuo URL e Secret (ottenuti al punto 1) per generare l’API necessaria a recuperare le informazioni sulle riunioni:
Non incollare semplicemente script casuali trovati su Internet (incluso questo!). Verificali per assicurarti che abbiano senso e, se necessario, consulta la documentazione dell’API.
import hashlib
from urllib.parse import urljoin
# Inserisci qui le tue variabili
base_url = "INCOLLA_QUI_IL_TUO_URL" + "api/"
secret = "INCOLLA_QUI_IL_TUO_SECRET"
# genera il checksum di sicurezza
plaintext = "getMeetings" + secret
sha1 = hashlib.sha1()
sha1.update(plaintext.encode('utf-8'))
checksum = sha1.hexdigest()
# ottieni l'URL API per elencare le informazioni sulle riunioni
url = urljoin(base_url, "getMeetings?checksum=" + checksum)
print("apri il seguente URL per vedere le informazioni sulla riunione")
print(url)
Sostituisci INCOLLA_QUI_IL_TUO_URL con l’URL API ottenuto in precedenza e INCOLLA_QUI_IL_TUO_SECRET con il segreto, quindi esegui lo script.
Dopo averlo fatto, dovrebbe stampare un URL simile a: https://example.com/bigbluebutton/api/getMeetings?checksum=20e928e8928e8e9f919928e829d999df82882818
Chiunque possieda quell’URL può fare cose dannose!
Possono vedere tutte le riunioni in corso, quanti utenti sono presenti in ciascuna e ottenere le credenziali per parteciparvi.
3. Apri l’URL
Apri in modalità navigazione in incognito per assicurarti che l’URL non venga salvato nella cronologia del browser, a causa del avviso sopra.
Avvia semplicemente la riunione che intendi aggiungere e aggiorna la pagina con l’URL dell’API. Dovresti vedere qualcosa del genere:
<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>Il nome della tua stanza</meetingName>
<meetingID>XXXXXXXXXXXXXXXXXXXXXXXXXXX</meetingID>
...
<attendeePW>YYYYYYY</attendeePW>
<moderatorPW>ZZZZZZZ</moderatorPW>
...
Cerca semplicemente le righe sotto la riunione desiderata e prendi:
- meetingID
- attendeePW
- moderatorPW
Dopo averli ottenuti, cancella tutti i file e chiudi tutte le schede con accesso all’API.
Non vogliamo incidenti di sicurezza!
4. “Aggiungi BigBlueButton” al tuo post
Invece di aggiungere tramite l’interfaccia regolare “Aggiungi BigBlueButton”, incolla semplicemente quanto segue nel tuo post:
[wrap=discourse-bbb meetingID="XXXXX" attendeePW="YYYYY" moderatorPW="ZZZZZ" mobileIframe="false" desktopIframe="false"][/wrap]
Sostituisci con quanto ottenuto al passaggio 3:
- XXXXX con il contenuto di
meetingID
- YYYYY con il contenuto di
attendeePW
- ZZZZZZ con il contenuto di
moderatorPW
Quindi salva il post.
6. Dovrebbe funzionare ora \o/
Ora dovresti essere in grado di partecipare sia da Discourse che dall’altra interfaccia che stavi utilizzando. Se era Greenlight, ora puoi partecipare anche tramite link.}