既存の会議に「BigBlueButton を追加」する
このプラグインは、「BigBlueButton を追加」をクリックすると自動的に部屋を作成します。ただし、すでに存在する部屋(このプラグインを導入する前に作成されたものなど)を使用したい場合もあるかもしれません。その理由の例を以下に2つ挙げます。
これは非常に侵入的な処理です。何をしているかを本当に理解しているか確認してください
手順
おそらく、現在使用しているフロントエンド(Greenlight? など)は、会議 ID や attendeePW(部屋のアクセスコードとは異なります。混乱しやすいですね)のような低レベルの情報を提供してくれません。そのため、これらの情報を取得するには、BBB の API を使用してすべての会議情報をリストアップする必要があります。
注記: より良い方法があるかもしれませんが、私は知りません。もしそのような方法があれば教えてください。
前提条件
- BBB サーバーへのターミナルアクセス(例:SSH 経由)
- 基本的な Python の知識(コードの検証用)
- BBB API を使用する際の セキュリティリスク についての理解
1. BBB のシークレットと API エンドポイントの取得
BBB サーバーが動作しているシェル(SSH 経由など)にアクセスし、以下のコマンドを実行します。
sudo bbb-conf --secret
これにより、URL と Secret が表示されます。これらは後で使用します。
このシークレットを知っている人は誰でもサーバーに対して悪意のある操作を行う可能性があります!必ず安全に保管してください。
2. 会議情報を取得する Python3 スクリプトの作成
以下は、ステップ1で取得した URL とシークレットを受け取り、会議情報を取得するための API を生成するシンプルな Python 3 スクリプトです。
インターネットで見つけた(このスクリプトを含む)ランダムなスクリプトをそのまま貼り付けないでください。内容を検証し、必要に応じて API のドキュメント を確認してください。
import hashlib
from urllib.parse import urljoin
# 変数をここに設定
base_url = "ここに URL を貼り付け" + "api/"
secret = "ここにシークレットを貼り付け"
# セキュリティチェックサムを生成
plaintext = "getMeetings" + secret
sha1 = hashlib.sha1()
sha1.update(plaintext.encode('utf-8'))
checksum = sha1.hexdigest()
# 会議情報をリストするための API URL を取得
url = urljoin(base_url, "getMeetings?checksum=" + checksum)
print("会議情報を見るには以下の URL を開いてください")
print(url)
PASTE_HERE_YOUR_URL を先に取得した API URL に、PASTE_HERE_YOUR_SECRET をシークレットに置き換えてから、スクリプトを実行してください。
実行後、以下のような URL が出力されます。
https://example.com/bigbluebutton/api/getMeetings?checksum=20e928e8928e8e9f919928e829d999df82882818
この URL を知っている人は誰でも悪意のある操作を行う可能性があります!
進行中のすべての会議、各会議のユーザー数、および参加するための認証情報を取得できます。
3. URL を開く
上記の警告により URL がブラウザの履歴に保存されないよう、プライベートブラウジングモードで開いてください。
追加しようとしている会議を開始し、API URL が表示されているページをリフレッシュしてください。すると、以下のような内容が表示されるはずです。
<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>あなたの部屋の名前</meetingName>
<meetingID>XXXXXXXXXXXXXXXXXXXXXXXXXXX</meetingID>
...
<attendeePW>YYYYYYY</attendeePW>
<moderatorPW>ZZZZZZZ</moderatorPW>
...
追加したい会議の下にある行を探し、以下の情報を取得してください。
- meetingID
- attendeePW
- moderatorPW
これらの情報を取得したら、API にアクセスしているすべてのファイルを削除し、すべてのタブを閉じてください。
セキュリティインシデントを防ぎましょう!
4. 投稿に「BigBlueButton を追加」する
通常の「BigBlueButton を追加」インターフェースではなく、以下のコードを投稿に直接貼り付けてください。
[wrap=discourse-bbb meetingID="XXXXX" attendeePW="YYYYY" moderatorPW="ZZZZZ" mobileIframe="false" desktopIframe="false"][/wrap]
そして、ステップ3 で取得した情報に置き換えてください。
- XXXXX を
meetingID の内容に
- YYYYY を
attendeePW の内容に
- ZZZZZZ を
moderatorPW の内容に
その後、投稿を保存してください。
6. これで動作するはずです \o/
これで、Discourse 経由および以前使用していた他のフロントエンド(Greenlight の場合、リンク経由でも)の両方から参加できるようになっているはずです。