BigBlueButton برای مودل
از مودل ۴ به بعد در هسته قرار دارد. پیش از نصب جداگانه، وجود فعالیت و سازگاری با نسخه مودل را بررسی کنید.
نسخه سازگار را از مرجع افزونه انتخاب کنید.
دریافت از منبع افزونه لینک خارجی؛ پیش از نصب، سازگاری نسخه را بررسی کنید.مستندات API بیگ بلو باتن، راهنمای اتصال و افزونههای مودل و وردپرس؛ از اولین درخواست تا ورود به کلاس.
// One connection. Your classroom.
create({ meetingID })
→ SUCCESS
join({ role: "VIEWER" })
→ Classroom readyوبسایت، نرمافزار یا سامانه آموزشی خود را به کلاس آنلاین متصل کنید. API بیگ بلو باتن ایران از ساختار استاندارد BigBlueButton استفاده میکند؛ دریافت اطلاعات اتصال از حساب شما انجام میشود.
نشانی ورود به پنل، آدرس API نیست. مسیر API حساب خود را از تنظیمات بردارید؛ نشانی آن را حدس نزنید و بخش /api را بدون بررسی دوباره اضافه نکنید.
درخواست را با نام دقیق متد و پارامترهای URL بسازید. سپس checksum را از اتصال نام متد، رشته پارامترها و Secret محاسبه کنید. Secret خودش نباید در URL ارسال شود.
checksum = HASH(methodName + exactQueryString + sharedSecret)checksum را بعد از محاسبه به URL اضافه کنید؛ خودش جزو رشته امضا نیست.مقادیر BBB_API_URL و BBB_SHARED_SECRET را در محیط امن سرور برنامه تعریف کنید. URL در این نمونه باید آدرس کامل پوشه API باشد. کد زیر نقطه شروع اتصال است؛ ورود کاربر، مجوز دسترسی به دوره و تعیین نقش را در برنامه خود پیاده کنید.
<?php
// Run on your application server. Requires PHP cURL + SimpleXML.
$base = rtrim((string) getenv('BBB_API_URL'), '/') . '/';
$secret = (string) getenv('BBB_SHARED_SECRET');
if (!str_starts_with($base, 'https://') || $secret === '') {
throw new RuntimeException('Configure API URL and secret first.');
}
function bbbUrl(string $method, array $params): string {
global $base, $secret;
$query = http_build_query($params, '', '&', PHP_QUERY_RFC3986);
$checksum = hash('sha1', $method . $query . $secret);
return $base . $method . '?' . $query
. ($query === '' ? '' : '&') . 'checksum=' . $checksum;
}
function bbbRequest(string $method, array $params): SimpleXMLElement {
$curl = curl_init(bbbUrl($method, $params));
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 20,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
]);
$body = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($body === false || $status !== 200) {
throw new RuntimeException('API transport error');
}
libxml_use_internal_errors(true);
$xml = simplexml_load_string($body, 'SimpleXMLElement', LIBXML_NONET);
if ($xml === false || (string) $xml->returncode !== 'SUCCESS') {
// Record a sanitized messageKey internally; never log the URL/secret.
throw new RuntimeException('API operation failed');
}
return $xml;
}
// Obtain meetingID from your authorized server-side application data.
$meetingID = 'course-42-session-1';
$meeting = bbbRequest('create', [
'name' => 'Online class',
'meetingID' => $meetingID,
'record' => 'true',
]);
// Authenticate the user and check course access before generating this URL.
// Only your server decides MODERATOR/VIEWER; do not trust a browser field.
$joinUrl = bbbUrl('join', [
'meetingID' => $meetingID,
'fullName' => 'Demo learner',
'userID' => 'student-1001',
'role' => 'VIEWER',
]);
// In a web controller, after authorization and before any output:
// header('Location: ' . $joinUrl, true, 303);
// exit;برای ورود مدیر، فقط پس از احراز هویت و بررسی مجوز، مقدار role را روی MODERATOR بگذارید. لینک امضاشده ورود را مانند یک اطلاعات دسترسی حساس نگهداری کنید؛ آن را عمومی یا در گزارشهای تحلیلی ثبت نکنید.
همه درخواستهای زیر به امضای معتبر نیاز دارند. فهرست پارامترهای این صفحه روی کاربردهای اصلی متمرکز است؛ پارامترهای پیشرفته و تفاوت نسخهها از مرجع هر متد در دسترس است.
createساخت جلسهGET / POST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
name | الزامی؛ نام قابل نمایش جلسه. |
meetingID | الزامی؛ شناسه پایدار و یکتای جلسه در برنامه شما. |
record | اختیاری؛ true برای فعال کردن امکان ضبط. |
duration | اختیاری؛ محدودیت زمان بر حسب دقیقه، مطابق سیاست سرویس. |
welcome | اختیاری؛ پیام خوشآمدگویی. |
logoutURL | اختیاری؛ مقصد خروج کاربر. |
autoStartRecording | اختیاری؛ شروع خودکار ضبط در سرویس پشتیبانیکننده. |
allowStartStopRecording | اختیاری؛ اجازه کنترل ضبط توسط مدیر. |
meta_* | اختیاری؛ فراداده دلخواه، بدون اطلاعات محرمانه. |
پس از SUCCESS شناسه جلسه را در برنامه ذخیره کنید. تکرار create با همان شناسه لزوما جلسه جدید نمیسازد؛ پارامترهای متناقض را بررسی کنید. فعال بودن record به معنی آماده شدن فوری فایل ضبط نیست.
پارامترهای کامل create در مرجع رسمی ↗joinورود کاربر به کلاسGET · پاسخ: Redirect / XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | الزامی؛ شناسه جلسه ساختهشده. |
fullName | الزامی؛ نام نمایشی کاربر. |
role | MODERATOR یا VIEWER؛ در نسخههای سازگار به جای password استفاده میشود. |
password | روش قدیمی تعیین نقش؛ فقط در اتصالهایی که به آن نیاز دارند. |
userID | اختیاری؛ شناسه کاربر در برنامه شما. |
redirect | پیشفرض true؛ ورود مرورگر به کلاس. حالت false برای بررسی پاسخ اتصال. |
در درخواست ورود باید نقش معتبر یا رمز نقش وجود داشته باشد. نشانی join امضاشده را با redirect مرورگر باز کنید، نه با نمایش Secret به کاربر. role بر password معتبر اولویت دارد.
پارامترهای کامل join در مرجع رسمی ↗insertDocumentافزودن ارائه به جلسه فعالPOST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | الزامی؛ شناسه جلسه فعال. |
XML body | بدنه XML با module presentation و document؛ نشانی HTTPS فایل یا محتوای base64. |
درخواست POST با Content-Type: application/xml ارسال میشود. پاسخ SUCCESS به معنی پذیرش درخواست است؛ دریافت و تبدیل ارائه در پسزمینه انجام میشود. فرمتهای مجاز و محدودیت حجم تابع سرور هستند.
پارامترهای کامل insertDocument در مرجع رسمی ↗isMeetingRunningبررسی وضعیت جلسهGET / POST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | الزامی؛ شناسه جلسه. |
پاسخ running نشان میدهد جلسه در حال اجرا هست یا نه. polling را با فاصله منطقی انجام دهید و در خطای موقت، فاصله را بیشتر کنید.
پارامترهای کامل isMeetingRunning در مرجع رسمی ↗getMeetingInfoجزئیات جلسه و حاضرانGET / POST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | الزامی؛ شناسه جلسه. |
اطلاعات وضعیت و کاربران حاضر برای نظارت بر جلسه است. گزارش حضور قابل استناد را در سامانه خود با توجه به سیاست سرویس نگهداری کنید.
پارامترهای کامل getMeetingInfo در مرجع رسمی ↗getMeetingsفهرست جلسههای قابل مشاهدهGET / POST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
checksum | الزامی؛ امضای درخواست با query string خالی. |
این متد پارامتر اختصاصی الزامی ندارد، اما checksum لازم است. آن را معادل فهرست همه کلاسهای حساب پنل فرض نکنید؛ دامنه داده قابل مشاهده به سرویس و نحوه ساخت جلسه بستگی دارد.
پارامترهای کامل getMeetings در مرجع رسمی ↗endپایان دادن به جلسهGET / POST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | الزامی؛ شناسه جلسه. |
password | در نسخههای قدیمی رمز مدیر؛ در نسخههای جدید منسوخ شده است. |
این عملیات کاربران را از جلسه خارج میکند. موفقیت پاسخ به معنی ارسال درخواست پایان است؛ چند ثانیه بعد با isMeetingRunning وضعیت را بررسی کنید. در برنامه خود تایید مدیر را بگیرید.
پارامترهای کامل end در مرجع رسمی ↗getRecordingsفهرست ضبطهاGET · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | اختیاری؛ یک یا چند شناسه جلسه با ویرگول. |
recordID | اختیاری؛ شناسه ضبط؛ در صورت استفاده بر meetingID اولویت دارد. |
state | اختیاری؛ فیلتر وضعیت مانند published یا unpublished. |
offset / limit | صفحهبندی در نسخههای پشتیبانیکننده. |
ضبط پس از پردازش آماده میشود. خالی بودن نتیجه بلافاصله پس از کلاس الزاما خطا نیست. لینک پخش را از پاسخ بگیرید؛ ساختار آن را حدس نزنید.
پارامترهای کامل getRecordings در مرجع رسمی ↗publishRecordingsانتشار یا مخفی کردن ضبطGET · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
recordID | الزامی؛ شناسه یا شناسههای ضبط. |
publish | الزامی؛ true یا false. |
فقط برای مدیر مجاز اجرا کنید. مخفی کردن ضبط با حذف آن متفاوت است؛ سیاست دسترسی به لینک پخش را نیز بررسی کنید.
پارامترهای کامل publishRecordings در مرجع رسمی ↗deleteRecordingsحذف ضبطGET · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
recordID | الزامی؛ شناسه یا شناسههای ضبط. |
عملیات حذف را تنها پس از تایید صریح مدیر و بررسی نسخه پشتیبان اجرا کنید. درخواست حذف نباید از لینک عمومی یا بدون احراز هویت برنامه قابل اجرا باشد.
پارامترهای کامل deleteRecordings در مرجع رسمی ↗updateRecordingsویرایش فراداده ضبطGET / POST · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
recordID | الزامی؛ شناسه ضبط. |
meta_* | کلیدهای فراداده برای افزودن یا تغییر؛ مقدار خالی برای حذف کلید موجود. |
برای عنوانها و برچسبهای سامانه استفاده کنید. فراداده محل نگهداری Secret، رمز یا داده حساس نیست.
پارامترهای کامل updateRecordings در مرجع رسمی ↗getRecordingTextTracksدریافت اطلاعات زیرنویس ضبطGET / POST · پاسخ: JSON
| پارامتر / مقدار | توضیح |
|---|---|
recordID | الزامی؛ شناسه ضبط. |
این متد پاسخ JSON دارد. فقط یک recordID بفرستید. فهرست زبانها و مسیر زیرنویسهای موجود را از پاسخ بخوانید. وجود زیرنویس به تنظیمات ضبط و سرویس بستگی دارد.
پارامترهای کامل getRecordingTextTracks در مرجع رسمی ↗putRecordingTextTrackبارگذاری زیرنویس ضبطPOST · پاسخ: JSON
| پارامتر / مقدار | توضیح |
|---|---|
recordID | الزامی؛ شناسه ضبط. |
kind | الزامی؛ نوع track مطابق مرجع نسخه سرور. |
lang | الزامی؛ کد زبان مانند fa. |
label | الزامی؛ نام نمایشی زبان. |
file | فایل زیرنویس در بدنه multipart/form-data. |
این متد از POST استفاده میکند. پارامترهای query را امضا کنید و فایل را در بدنه بفرستید. حذف پارامتر file میتواند زیرنویس موجود همان زبان و نوع را حذف کند. پاسخ این متد JSON است؛ فایل و پاسخ را با مرجع نسخه سرور تطبیق دهید.
پارامترهای کامل putRecordingTextTrack در مرجع رسمی ↗sendChatMessageارسال پیام به گفتوگوی عمومیGET · پاسخ: XML
| پارامتر / مقدار | توضیح |
|---|---|
meetingID | الزامی؛ شناسه جلسه فعال. |
message | الزامی؛ متن پیام، ۱ تا ۵۰۰ نویسه. |
userName | اختیاری؛ نام نمایشی فرستنده. |
از نسخه ۳ معرفی شده است. پیام متنی است؛ روی اجرای HTML یا Markdown تکیه نکنید. دسترسی و تعداد پیامها را در برنامه محدود کنید.
پارامترهای کامل sendChatMessage در مرجع رسمی ↗برای بارگذاری ارائه از بدنه XML متد create، تنظیمات رابط کاربر و callback آماده شدن ضبط، از مرجع کامل API استفاده کنید. متدهای بخش Internal API مانند getJoinUrl، stuns و signOut برای استفاده داخلی هستند؛ برای ورود کاربر از join استفاده کنید. Webhooks افزونه و تنظیمات جدا دارد و فعال بودن آن صرفا با داشتن URL و Secret تضمین نمیشود.
موفق بودن HTTP به تنهایی کافی نیست؛ نتیجه عملیات را از returncode بخوانید. اغلب متدها پاسخ XML دارند؛ join با redirect و برخی متدهای جدید استثنا هستند. نمونههای زیر نمایشیاند.
<response>
<returncode>SUCCESS</returncode>
<running>true</running>
</response><response>
<returncode>FAILED</returncode>
<messageKey>checksumError</messageKey>
<message>Request signature is invalid.</message>
</response>| پارامتر / مقدار | توضیح |
|---|---|
checksumError | Secret، نام متد، ترتیب و encoding پارامترها را بررسی کنید. امضا را قبل از تغییر URL بسازید. |
notFound | شناسه جلسه یا ضبط، زمان اجرای جلسه و دسترسی حساب را بررسی کنید. |
HTTP 401 / 403 | اطلاعات اتصال و محدودیت دسترسی سرویس را بررسی کنید؛ Secret را در تیکت عمومی نفرستید. |
HTTP 429 | با backoff و فاصله بیشتر دوباره درخواست بفرستید. |
Timeout / 5xx | ارتباط سرور برنامه، DNS و TLS را بررسی کنید. عملیات حذف و پایان را کورکورانه تکرار نکنید. |
در لاگ، نام متد، شناسه پیگیری داخلی و نتیجه پاکسازیشده را ثبت کنید؛ URL امضاشده، Secret و اطلاعات شخصی کاربران را ثبت نکنید.
برای هر جلسه برنامهریزیشده، شناسه مشخص نگه دارید. پس از پایان، پردازش ضبط ممکن است زمان ببرد؛ با فاصله مناسب وضعیت را بررسی کنید و به کاربر «در حال پردازش» نمایش دهید. دسترسی به ضبط را در سطح حساب و دوره کنترل کنید.
ضبط، مدت نگهداری و ظرفیت مصرف تابع سرویس شماست. API مجوز عبور از محدودیت اشتراک را ایجاد نمیکند. برای مشاهده تعرفهها به تعرفه خدمات بروید.
برای اتصال سامانه آموزشی یا وبسایت، افزونه سازگار با نسخه نصبشده خود را انتخاب کنید. اطلاعات URL و Secret را از حساب بیگ بلو باتن ایران بردارید.
از مودل ۴ به بعد در هسته قرار دارد. پیش از نصب جداگانه، وجود فعالیت و سازگاری با نسخه مودل را بررسی کنید.
نسخه سازگار را از مرجع افزونه انتخاب کنید.
دریافت از منبع افزونه لینک خارجی؛ پیش از نصب، سازگاری نسخه را بررسی کنید.افزونه اتصال وردپرس؛ مخزن رسمی هشدار سازگاری با نسخههای جدید دارد. پیش از استفاده روی سایت اصلی تست شود.
سازگاری وردپرس و PHP نیازمند بررسی است.
دریافت از منبع افزونه لینک خارجی؛ پیش از نصب، سازگاری نسخه را بررسی کنید.برای نسخههایی که نصب جدا لازم دارند، فقط بسته سازگار با همان نسخه را از منبع افزونه بگیرید. راهنمای رسمی مودل ↗
افزونه معرفیشده BBB Administration Panel در مخزن وردپرس هشدار تستنشدن با نسخههای جدید دارد. معرفی لینک به معنی تایید امنیت یا سازگاری همه نسخهها نیست؛ نسخه بررسیشده را از پشتیبانی دریافت کنید.
وارد app.bigbluebutton.me شوید؛ در «مدیریت جلسات ← تنظیمات» اطلاعات اتصال حساب در دسترس است.
ساختار اتصال استاندارد است. دسترسی به قابلیتها، ظرفیت و رفتار متدهای وابسته به نسخه را با سرویس فعال خود بررسی کنید.
آن را جایگزین فهرست مدیریت جلسات پنل در نظر نگیرید. جلسههای قابل مشاهده به مسیر ساخت جلسه و محدوده دسترسی اتصال بستگی دارند. برای یکپارچهسازی، شناسه جلسههایی که خود برنامه ایجاد کرده است را نگه دارید.
فایل ضبط باید پردازش شود. فعال بودن ضبط، پایان صحیح جلسه و وضعیت پردازش را بررسی کنید.
خیر. امضای درخواست باید در سرور انجام شود و فقط لینک ورود مجاز به کاربر همان جلسه ارائه شود.
این راهنما برای اتصال به خدمات بیگ بلو باتن ایران نوشته شده است. فهرست کامل پارامترهای کمکاربرد در مرجع استاندارد در دسترس است. برای درخواست پشتیبانی، نام متد، زمان خطا و messageKey را ارسال کنید؛ Secret را ارسال نکنید.
آموزشها و خبرهای تازه را در کانال بیگ بلو باتن ایران دنبال کنید.