joisarjignesh / bigbluebutton
BigBlueButton 服务器 API 库用于 Laravel
v2.8
2024-03-26 06:11 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- littleredbutton/bigbluebutton-api-php: ~5.0
Requires (Dev)
- orchestra/testbench: ^4.0|^7.0|^8.0
- phpunit/phpunit: ^8.0|^9.0|^10.0
README
BigBlueButton 服务器 API 库用于 Laravel
提供在大蓝按钮服务器和 Laravel 框架之间轻松通信的包
要求
- Laravel 5.5 或以上。
安装
您可以通过 composer 安装此包
composer require joisarjignesh/bigbluebutton
安装包后发布配置文件
php artisan vendor:publish --tag=bigbluebutton-config
使用方法
- 在 config/bigbluebutton.php 文件中定义
BBB_SECURITY_SALT=bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
- 对于特定服务器配置(默认情况下为多服务器,可选)
'servers' => [
'server1' => [
'BBB_SECURITY_SALT' => '',
'BBB_SERVER_BASE_URL' => '',
],
]
定义盐和 URL 后清除旧配置
php artisan config:clear
API
检查 URL 和密钥是否正常工作
dd(\Bigbluebutton::isConnect()); //default dd(\Bigbluebutton::server('server1')->isConnect()); //for specific server dd(bigbluebutton()->isConnect()); //using helper method
会议
创建会议
- 您可以通过三种方式创建会议 文档
1.通过传递数组
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator' ]);
2.通过传递 CreateMeetingParameters 对象来自定义创建会议
use BigBlueButton\Parameters\CreateMeetingParameters; $meetingParams = new CreateMeetingParameters($meetingID, $meetingName); $meetingParams->setModeratorPW('moderatorPassword'); $meetingParams->setAttendeePW('attendeePassword'); \Bigbluebutton::create($meetingParams);
3.通过传递数组,它将返回 CreateMeetingParameters 对象以覆盖方法
$createMeeting = \Bigbluebutton::initCreateMeeting([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', ]); $createMeeting->setDuration(100); //overwrite default configuration \Bigbluebutton::create($createMeeting);
上传幻灯片
- 您可以在创建会议的调用中上传幻灯片。如果您这样做,大蓝按钮服务器将立即下载并处理 幻灯片
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', 'presentation' => [ //must be array ['link' => 'https://www.example.com/doc.pdf', 'fileName' => 'doc.pdf'], //first will be default and current slide in meeting ['link' => 'https://www.example.com/php_tutorial.pptx', 'fileName' => 'php_tutorial.pptx'], ], ]);
结束会议回调 URL
-
您可以让大蓝按钮服务器在会议结束时回调您的应用程序。在收到回调后,您的应用程序可以更改用户界面以隐藏“加入”按钮等。
注意:结束会议回调 URL 将静默通知,用户不会重定向到该页面。
- 要测试 endCallbackUrl,请参阅 webhook 网站
如果您希望在会议结束后将用户重定向到该页面,则可以使用 logoutURL
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', 'endCallbackUrl' => 'www.example.com/callback', 'logoutUrl' => 'www.example.com/logout', ]);
录制准备回调 URL
-
您可以让大蓝按钮服务器在会议录制准备观看时回调您的应用程序。在收到回调后,您的应用程序可以,例如,向演讲者发送电子邮件以通知他们他们的录制已准备好。
注意:录制准备回调 URL 将静默通知,用户不会重定向到该页面。
- 要测试录制准备回调,请参阅 webhook 网站
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', 'bbb-recording-ready-url' => 'https://example.com/api/v1/recording_status', ]);
加入会议
- 加入会议(默认情况下将重定向到 BigBlueButton 服务器并加入会议) 文档
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton; return redirect()->to( Bigbluebutton::join([ 'meetingID' => 'tamku', 'userName' => 'disa', 'password' => 'attendee' //which user role want to join set password here ]) );
- 加入会议但不希望重定向到 BigBlueButton 服务器并传递其他参数
\Bigbluebutton::join([ 'meetingID' => 'tamku', 'userName' => 'disa', 'password' => 'attendee', //which user role want to join set password here 'redirect' => false, //it will not redirect into bigblueserver 'userId' => "54575", 'customParameters' => [ 'foo' => 'bar', 'key' => 'value' ] ]);
获取会议列表
- 获取所有会议 文档
\Bigbluebutton::all(); //using facade bigbluebutton()->all(); //using helper method
获取会议信息
- 获取会议信息 文档
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton; Bigbluebutton::getMeetingInfo([ 'meetingID' => 'tamku', 'moderatorPW' => 'moderator' //moderator password set here ]);
会议正在进行中
- 会议是否在进行中 文档
Bigbluebutton::isMeetingRunning([ 'meetingID' => 'tamku', ]); Bigbluebutton::isMeetingRunning('tamku'); //second way
关闭会议
- 关闭会议 文档
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton; Bigbluebutton::close([ 'meetingID' => 'tamku', 'moderatorPW' => 'moderator' //moderator password set here ]);
录制
获取录制
- 获取录音 文档
\Bigbluebutton::getRecordings([ 'meetingID' => 'tamku', //'meetingID' => ['tamku','xyz'], //pass as array if get multiple recordings //'recordID' => 'a3f1s', //'recordID' => ['xyz.1','pqr.1'] //pass as array note :If a recordID is specified, the meetingID is ignored. // 'state' => 'any' // It can be a set of states separate by commas ]);
发布录制
- 发布录音 文档
\Bigbluebutton::publishRecordings([ 'recordID' => 'a3f1s', //'recordID' => ['xyz.1','pqr.1'] //pass as array if publish multiple recordings 'state' => true //default is true ]);
删除录制
- 删除录音 文档
\Bigbluebutton::deleteRecordings([ //'recordID' => 'a3f1s', 'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings ]);
更新录制
- 更新录音 文档
\Bigbluebutton::updateRecordings([ //'recordID' => 'a3f1s', 'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings ]);
钩子
创建钩子
- 创建钩子 文档
dd(Bigbluebutton::hooksCreate([ 'callbackURL' => 'example.test', //required 'meetingID' => 'tamku', //optional if not set then hooks set for all meeting id 'getRaw' => true //optional ]));
销毁钩子
- 销毁钩子 文档
dd(Bigbluebutton::hooksDestroy([ 'hooksID' => 33 ])); dd(Bigbluebutton::hooksDestroy('53')); //second way
其他
获取API版本
- 获取API版本
dd(\Bigbluebutton::getApiVersion()); //return as collection
非官方的
开始会议
- 开始会议(首先检查会议是否存在,如果不存在则创建会议并加入会议,如果存在则直接加入会议)(默认用户以主持人身份加入)
$url = \Bigbluebutton::start([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting name', 'moderatorPW' => 'moderator', //moderator password set here 'attendeePW' => 'attendee', //attendee password here 'userName' => 'John Deo',//for join meeting //'redirect' => false // only want to create and meeting and get join url then use this parameter ]); return redirect()->to($url);
更多信息请阅读此 维基
关于Bigbluebutton API测试请参阅此 ApiMate
查看Bigbluebutton官方开发API Bigbluebutton
支持
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现任何安全相关的问题,请发送电子邮件至 jigneshjoisar@gmail.com 而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅 许可文件。