“Adicionar BigBlueButton” a uma conferência já existente
Este plugin cria automaticamente uma sala para você quando clica em “Adicionar BigBlueButton”. No entanto, você pode querer usar uma sala já existente (criada antes de ter este plugin). Aqui estão dois exemplos de por que você pode querer fazer isso.
-
Você já criou uma sala — (com o Greenlight, por exemplo) e deseja permitir que as pessoas também participem pelo Discourse
-
Permitir também que as pessoas participem via link — Ao usar o Greenlight (a interface padrão), ele gera um link compartilhável para entrar na chamada. Com isso, as pessoas podem participar pelo Discourse ou via link.
Este é um processo bastante invasivo, então tenha certeza absoluta de que entende o que está fazendo
Instruções
Provavelmente a interface que você está usando (Greenlight?) não fornece informações de baixo nível, como o ID da reunião ou attendeePW (que é diferente do código de acesso da sala — sei, é confuso). Portanto, para obter essas informações, precisaremos usar a API do BBB para listar todos os dados da reunião.
Nota: pode haver uma maneira melhor de fazer isso, mas não estou ciente. Por favor, me avise se for o caso.
Pré-requisitos
- acesso ao terminal do servidor BBB (via SSH, por exemplo)
- conhecimento básico de Python (para verificar meu código)
- compreensão dos riscos de segurança ao usar a API do BBB
1. Obter o segredo e o ponto de extremidade da API do BBB
Acesse um shell (via SSH) onde o servidor BBB está em execução e execute:
sudo bbb-conf --secret
Isso fornecerá uma URL e um Segredo. Eles serão úteis mais tarde.
Qualquer pessoa com esse segredo pode fazer coisas ruins no seu servidor! Portanto, mantenha-o seguro.
2. Criar script Python 3 para obter as informações da reunião
Abaixo está um script simples em Python 3 que recebe sua URL e Segredo (fornecidos no passo 1) e gera a API para obter as informações das reuniões:
Não cole scripts aleatórios encontrados na internet (incluindo este!). Verifique se faz sentido e, se necessário, consulte a documentação da API.
import hashlib
from urllib.parse import urljoin
# Insira suas variáveis aqui
base_url = "COLE_AQUI_SUA_URL" + "api/"
secret = "COLE_AQUI_SEU_SEGREDO"
# gera a soma de verificação de segurança
plaintext = "getMeetings" + secret
sha1 = hashlib.sha1()
sha1.update(plaintext.encode('utf-8'))
checksum = sha1.hexdigest()
# obtém a URL da API para listar informações das reuniões
url = urljoin(base_url, "getMeetings?checksum=" + checksum)
print("abra a seguinte URL para ver as informações da reunião")
print(url)
Substitua COLE_AQUI_SUA_URL pela URL da API obtida anteriormente e COLE_AQUI_SEU_SEGREDO pelo segredo, e então execute o script.
Após isso, deve imprimir uma URL como https://exemplo.com/bigbluebutton/api/getMeetings?checksum=20e928e8928e8e9f919928e829d999df82882818
Qualquer pessoa com essa URL pode fazer coisas ruins!
Elas podem ver todas as reuniões em andamento, quantos usuários estão em cada uma, além de obter as credenciais para entrar.
3. Abrir a URL
Abra no modo de navegação anônima para garantir que a URL não seja salva no histórico do navegador devido ao aviso acima.
Basta iniciar a reunião que você pretende adicionar e atualizar a página com a URL da API. Em seguida, você deverá ver algo como:
<response>
<returncode>SUCESSO</returncode>
<meetings>
<meeting>
<meetingName>Nome da sua sala</meetingName>
<meetingID>XXXXXXXXXXXXXXXXXXXXXXXXXXX</meetingID>
...
<attendeePW>YYYYYYY</attendeePW>
<moderatorPW>ZZZZZZZ</moderatorPW>
...
Basta procurar as linhas abaixo da reunião desejada e anotar:
- meetingID
- attendeePW
- moderatorPW
Depois de obter esses dados, apague todos os arquivos e feche todas as abas com acesso à API.
Não queremos nenhum incidente de segurança!
4. “Adicionar BigBlueButton” ao seu post
Em vez de adicionar pela interface regular “Adicionar BigBlueButton”, basta colar o seguinte no seu post:
[wrap=discourse-bbb meetingID="XXXXX" attendeePW="YYYYY" moderatorPW="ZZZZZ" mobileIframe="false" desktopIframe="false"][/wrap]
E substitua pelo que você obteve no passo 3:
- XXXXX pelo conteúdo de
meetingID
- YYYYY pelo conteúdo de
attendeePW
- ZZZZZZ pelo conteúdo de
moderatorPW
Em seguida, salve o post.
6. Agora deve estar funcionando \o/
Agora você deve ser capaz de participar tanto pelo Discourse quanto pela outra interface que estava usando. Se era o Greenlight, agora também pode participar via link.}