alireza5014 / bigbluebutton
BigBlueButton 服务器 API 库,适用于 Laravel
dev-master
2024-05-25 19:00 UTC
Requires
- php: >=7.0
- alireza5014/bigbluebutton-api-php: dev-master
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-25 19:39:40 UTC
README
BigBlueButton 服务器 API 库,适用于 Laravel
提供 BigBlueButton 服务器与 Laravel 框架之间轻松通信的包
要求
- Laravel 5.5 或更高版本。
安装
您可以通过 composer 安装此包
composer require Alireza5014/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' => '',
],
]
定义 salt 和 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->setModeratorPassword('moderatorPassword'); $meetingParams->setAttendeePassword('attendeePassword'); \Bigblubutton::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 服务器将立即下载并处理 幻灯片
\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
-
您可以让 BigBlueButton 服务器在会议结束时回调您的应用程序。在收到回调后,您的应用程序可以,例如,更改用户界面以隐藏“加入”按钮。
注意:会议结束回调 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
-
您可以让 BigBlueButton 服务器在会议录制准备观看时回调您的应用程序。在收到回调后,您的应用程序可以,例如,向演示者发送电子邮件通知他们他们的录制已准备好。
注意:录制准备回调 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 Alireza5014\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 Alireza5014\Bigbluebutton\Facades\Bigbluebutton; Bigbluebutton::getMeetingInfo([ 'meetingID' => 'tamku', 'moderatorPW' => 'moderator' //moderator password set here ]);
会议是否正在进行中
- 会议是否正在进行中 文档
Bigbluebutton::isMeetingRunning([ 'meetingID' => 'tamku', ]); Bigbluebutton::isMeetingRunning('tamku'); //second way
关闭会议
- 关闭会议 文档
use Alireza5014\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 ]);
配置xml
获取默认配置xml
- 获取默认配置xml 文档
\Bigbluebutton::getDefaultConfigXml(); //return as xml //dd(XmlToArray($this->bbb->getDefaultConfigXML()->getRawXml())); //return as array
设置配置xml
- 设置配置xml 文档
\Bigbluebutton::setConfigXml([ //'xml' => new \SimpleXMLElement('<config><modules><localeversion supressWarning="false">0.9.0</localeversion></modules></config>'), 'xml' => '<config><modules><localeversion supressWarning="false">0.9.0</localeversion></modules></config>', //pass as string other wise pass as SimpleXmlElement object like above line 'meetingID' => 'tamku' ]);
钩子
创建钩子
- 创建钩子 文档
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', '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);
更多信息请阅读此 Wiki
查看Bigbluebutton API测试 ApiMate
查看Bigbluebutton官方开发API Bigbluebutton
支持
变更日志
请查看 CHANGELOG 了解最近有哪些变化。
贡献
请查看 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 jigneshjoisar@gmail.com 而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。请查看 许可文件 了解更多信息。