joisarjignesh/bigbluebutton
BigBlueButton Server API Library for Laravel
Maintainers
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|^12.0
- littleredbutton/bigbluebutton-api-php: ~5.0
Requires (Dev)
- orchestra/testbench: ^4.0|^7.0|^8.0|^10.0
- phpunit/phpunit: ^8.0|^9.0|^10.0|^11.5.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT 83bf2ce439d6d5d8577103cc101be78f5396c12f
- Jignesh Joisar <jigneshjoisar.woop@gmail.com>
packagephpapilaravelbbbmeetingbigbluebuttonlaravel-packagejoisarjignesh
README
BigBlueButton Server API Library for Laravel
π License
π Latest Version on Packagist
π Build Status
π Quality Score
π Total Downloads
π Laravel Framework
Package that provides easily communicate between BigBlueButton server and laravel framework
- Requirements
- Installation
- Usage
- Api
Requirements
- Laravel 5.5 or above.
Installation
You can install the package via composer:
composer require joisarjignesh/bigbluebutton
After install package publish config file
php artisan vendor:publish --tag=bigbluebutton-config
Usage
- Define in config/bigbluebutton.php file
BBB_SECURITY_SALT=bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
- For Specific server configuration (only for multiple server by default is optional)
'servers' => [
'server1' => [
'BBB_SECURITY_SALT' => '',
'BBB_SERVER_BASE_URL' => '',
],
]
After Define salt and url clear old configurations
php artisan config:clear
Api
Check a url and secret working
dd(\Bigbluebutton::isConnect()); //default dd(\Bigbluebutton::server('server1')->isConnect()); //for specific server dd(bigbluebutton()->isConnect()); //using helper method
Meeting
Create a meeting
- You can create meeting in three ways document
1.By Passing Array
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator' ]);
2.By passing CreateMeetingParameters object for customize create meeting
use BigBlueButton\Parameters\CreateMeetingParameters; $meetingParams = new CreateMeetingParameters($meetingID, $meetingName); $meetingParams->setModeratorPW('moderatorPassword'); $meetingParams->setAttendeePW('attendeePassword'); \Bigbluebutton::create($meetingParams);
3.By passing array it will return CreateMeetingParameters object for overwrite methods
$createMeeting = \Bigbluebutton::initCreateMeeting([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', ]); $createMeeting->setDuration(100); //overwrite default configuration \Bigbluebutton::create($createMeeting);
Upload slides
- You can upload slides within the create a meeting call. If you do this, the BigBlueButton server will immediately
download and process the slides
\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'], ], ]);
End meeting callback URL
-
You can ask the BigBlueButton server to make a callback to your application when the meeting ends. Upon receiving the callback your application could, for example, change the interface for the user to hide the βjoinβ button.
Note : End meeting callback URL will notify silently, User won't redirect to that page.
- For testing endCallbackUrl see webhook site
If you want to redirect users to that page after meeting end then can use logoutURL
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', 'endCallbackUrl' => 'www.example.com/callback', 'logoutUrl' => 'www.example.com/logout', ]);
Recording ready callback URL
-
You can ask the BigBlueButton server to make a callback to your application when the recording for a meeting is ready for viewing. Upon receiving the callback your application could, for example, send the presenter an e-mail to notify them that their recording is ready
Note : Recording ready callback URL will notify silently, User won't redirect to that page.
- For testing Recording ready callback see webhook site
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', 'bbb-recording-ready-url' => 'https://example.com/api/v1/recording_status', ]);
Join a meeting
- Join meeting ( by default it will redirect into BigBlueButton Server And Join Meeting) document
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 ]) );
- Join meeting but does want to redirect into BigBlueButton server and pass other parameters
\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' ] ]);
Get a list of meetings
- Get all meetings document
\Bigbluebutton::all(); //using facade bigbluebutton()->all(); //using helper method
Get meeting info
- Get meeting info document
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton; Bigbluebutton::getMeetingInfo([ 'meetingID' => 'tamku', 'moderatorPW' => 'moderator' //moderator password set here ]);
Is a meeting running
- Is meeting running document
Bigbluebutton::isMeetingRunning([ 'meetingID' => 'tamku', ]); Bigbluebutton::isMeetingRunning('tamku'); //second way
Close a meeting
- Close meeting document
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton; Bigbluebutton::close([ 'meetingID' => 'tamku', 'moderatorPW' => 'moderator' //moderator password set here ]);
Recording
Get recordings
- Get recordings document
\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 ]);
Publish recordings
- Publish Recordings document
\Bigbluebutton::publishRecordings([ 'recordID' => 'a3f1s', //'recordID' => ['xyz.1','pqr.1'] //pass as array if publish multiple recordings 'state' => true //default is true ]);
Delete recordings
- Delete recordings document
\Bigbluebutton::deleteRecordings([ //'recordID' => 'a3f1s', 'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings ]);
Update recordings
- Update recordings document
\Bigbluebutton::updateRecordings([ //'recordID' => 'a3f1s', 'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings ]);
Hooks
Hooks create
- Hooks Create document
dd(Bigbluebutton::hooksCreate([ 'callbackURL' => 'example.test', //required 'meetingID' => 'tamku', //optional if not set then hooks set for all meeting id 'getRaw' => true //optional ]));
Hooks destroy
- Hooks Destroy document
dd(Bigbluebutton::hooksDestroy([ 'hooksID' => 33 ])); dd(Bigbluebutton::hooksDestroy('53')); //second way
Other
Get api version
- Get api version
dd(\Bigbluebutton::getApiVersion()); //return as collection
Unofficial
Start a meeting
- Start meeting (first check meeting is exists or not if not then create a meeting and join a meeting otherwise meeting is exists then it will directly join a meeting) (by default user join as moderator)
$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);
More Information Read This wiki
For Bigbluebutton Api Testing See This ApiMate
See Bigbluebutton Official dev Api Bigbluebutton
Support
π Buy Me A Coffeeπ Donate
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email jigneshjoisar@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
