barsmedia / bigbluebutton
为laravel 5.5, 6, 7, 8的Bigbluebutton包装器
2.0.4
2020-10-30 19:56 UTC
Requires
- php: >=5.6.4
- bigbluebutton/bigbluebutton-api-php: 2.0.9
- laravel/framework: ^5.5.0|^6.0|^7.0|^8
README
这是BigBlueButton API的laravel包装器
需求
- Laravel 6或更高版本。
安装
在composer.json中添加包并更新composer。这将下载包和官方的bigbluebutton php库。
composer require barsmedia/bigbluebutton
更新composer后,将ServiceProvider添加到config/app.php的providers数组中
barsmedia\Bigbluebutton\BigbluebuttonProviderService::class,
您可以选择使用外观来缩短代码。将以下内容添加到您的外观中
'Meeting' => barsmedia\Bigbluebutton\BigbluebuttonMeeting::class,
用法
您可以通过两种方式定义Big blue button密钥和服务器URL。
- 在.env文件中定义
BBB_SECURITY_SALT=bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
- 在config/bigbluebutton.php中定义
'BBB_SECURITY_SALT' => 'bbb_secret_key',
'BBB_SERVER_BASE_URL' => 'https://example.com/bigbluebutton/',
通过控制器中的依赖注入
列出所有会议
namespace App\Http\Controllers; class MeetingController extends Controller { /** * @var \barsmedia\Bigbluebutton\Contracts\Meeting */ protected $meeting; public function __construct(Meeting $meeting) { $this->meeting = $meeting; } /** * Returns a list of meetings */ public function all() { $meetings = $this->meeting->all(); if ($meetings) { // do something with meetings } }
创建会议
use barsmedia\Bigbluebutton\Contracts\Meeting; use BigBlueButton\Parameters\CreateMeetingParameters; use Illuminate\Http\Request; class MeetingController extends Controller { /** * @var \barsmedia\Bigbluebutton\Contracts\Meeting */ protected $meeting; public function __construct(Meeting $meeting) { $this->meeting = $meeting; } /** * Create a bigbluebutton meeting * * @param \Illuminate\Http\Request $request * @return void */ public function create(Request $request) { $meetingParams = new CreateMeetingParameters($request->meetingId, $request->meetingName); $meetingParams->setDuration(40); $meetingParams->setModeratorPassword('supersecretpwd'); if ($this->meeting->create($meetingParams)) { // Meeting was created } }
加入会议
use barsmedia\Bigbluebutton\Contracts\Meeting; use BigBlueButton\Parameters\JoinMeetingParameters; use Illuminate\Http\Request; class MeetingController extends Controller { /** * @var \barsmedia\Bigbluebutton\Contracts\Meeting */ protected $meeting; public function __construct(Meeting $meeting) { $this->meeting = $meeting; } /** * Join a bigbluebutton meeting * * @param \Illuminate\Http\Request $request * @return void */ public function join(Request $request) { $meetingParams = new JoinMeetingParameters($request->meetingID, $request->meetingName, 'MyMeetingPassword'); $meetingParams->setRedirect(true); $meetingUrl = $this->meeting->join($meetingParams); redirect()->setTargetUrl($meetingUrl); } }
关闭会议
use barsmedia\Bigbluebutton\Contracts\Meeting; use BigBlueButton\Parameters\EndMeetingParameters; use Illuminate\Http\Request; class MeetingController extends Controller { /** * @var \barsmedia\Bigbluebutton\Contracts\Meeting */ protected $meeting; public function __construct(Meeting $meeting) { $this->meeting = $meeting; } /** * End a bigbuebutton meeting * * @param \Illuminate\Http\Request $request * @return void */ public function close(Request $request) { $meetingParams = new EndMeetingParameters($request->meetingID, $request->moderator_password); $this->meeting->close($meetingParams); } }
通过Laravel外观
您还可以使用外观管理会议
Meeting::all(); //get a list of all meetings