All Projects → abiodunjames → Laravel Bigbluebutton

abiodunjames / Laravel Bigbluebutton

A BigBlueButton API wrapper for Laravel 5

Projects that are alternatives of or similar to Laravel Bigbluebutton

Barcode
Laravel 5 Barcode Generator
Stars: ✭ 826 (+4758.82%)
Mutual labels:  laravel
Laravel Uptime Monitor
A powerful and easy to configure uptime and ssl monitor
Stars: ✭ 837 (+4823.53%)
Mutual labels:  laravel
F32 For Android
Android library for temperature conversions and weather forecasts. Includes wrapper for OpenWeatherMap API
Stars: ✭ 16 (-5.88%)
Mutual labels:  wrapper
Menu
Menu and sidebar management package for Laravel
Stars: ✭ 6 (-64.71%)
Mutual labels:  laravel
Aetherupload Laravel
A Laravel package to upload large files 上传大文件的Laravel扩展包
Stars: ✭ 835 (+4811.76%)
Mutual labels:  laravel
Laravel Collectable
Stars: ✭ 7 (-58.82%)
Mutual labels:  laravel
Laravel Jade
[Discontinued] Laravel package that adds Jade templating support
Stars: ✭ 5 (-70.59%)
Mutual labels:  laravel
Mini Crm
Mini CRM with Laravel API and react-native
Stars: ✭ 17 (+0%)
Mutual labels:  laravel
Scaffold Interface
🚀 A Smart CRUD Generator For Laravel
Stars: ✭ 836 (+4817.65%)
Mutual labels:  laravel
Laravel Bootstrap Table List
Bootstrap table list generator for Laravel.
Stars: ✭ 16 (-5.88%)
Mutual labels:  laravel
Package Skeleton
📦 My base for PHP packages.
Stars: ✭ 6 (-64.71%)
Mutual labels:  laravel
Laravel Like Vue Validator
An input validator mixin for Vue.js
Stars: ✭ 7 (-58.82%)
Mutual labels:  laravel
Laravel Stager
Laravel Stager State Machine, Its purpose is to add state machine functionality to models
Stars: ✭ 16 (-5.88%)
Mutual labels:  laravel
Giantbomb
A PHP wrapper for GiantBomb API
Stars: ✭ 5 (-70.59%)
Mutual labels:  wrapper
Laravel Jsonapi
Basic setup framework for creating a Laravel JSON-API server
Stars: ✭ 16 (-5.88%)
Mutual labels:  laravel
Adldap2 Laravel
LDAP Authentication & Management for Laravel
Stars: ✭ 825 (+4752.94%)
Mutual labels:  laravel
Lvlgrid
✨ Grid helper to your Laravel application. Filter, order and pagination ajax
Stars: ✭ 7 (-58.82%)
Mutual labels:  laravel
Angular5.2 Laravel5.6
Angular 5.2 and Laravel 5.6 Authentication and CRUD
Stars: ✭ 17 (+0%)
Mutual labels:  laravel
Laravel Collection Macros
Custom Laravel Collection Macros.
Stars: ✭ 17 (+0%)
Mutual labels:  laravel
Acwa book ru
Книга "Архитектура сложных веб-приложений. С примерами на Laravel"
Stars: ✭ 886 (+5111.76%)
Mutual labels:  laravel

BigBlueButton API Wrapper for Laravel

This is a laravel wrapper for BigBlueButton API

Requirements

  • Laravel 5.3 or above.

Installation

Require package in your composer.json and update composer. This downloads the package and the official bigbluebutton php library.

composer require abiodunjames/bigbluebutton

After updating composer, add the ServiceProvider to the providers array in config/app.php

 Abiodunjames\Bigbluebutton\BigbluebuttonProviderService::class,

You can optionally use the facade for shorter code. Add this to your facades:

'Meeting' => Abiodunjames\Bigbluebutton\BigbluebuttonMeeting::class,

Usage

You can define Big blue button secret key and server url in two ways.

  1. Define in .env file

BBB_SECURITY_SALT =bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/

  1. Define in config/bigbluebutton.php
 'BBB_SECURITY_SALT' => 'bbb_secret_key',
 'BBB_SERVER_BASE_URL' => 'https://example.com/bigbluebutton/',

Via Dependency Injection in Controller

List all meetings

namespace App\Http\Controllers;

class MeetingController extends Controller
{
    /**
     * @var \Abiodunjames\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
        }
    }

Create meeting

use Abiodunjames\Bigbluebutton\Contracts\Meeting;
use BigBlueButton\Parameters\CreateMeetingParameters;
use Illuminate\Http\Request;

class MeetingController extends Controller
{
    /**
     * @var \Abiodunjames\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
            }
        }

Join a meeting

use Abiodunjames\Bigbluebutton\Contracts\Meeting;
use BigBlueButton\Parameters\JoinMeetingParameters;
use Illuminate\Http\Request;

class MeetingController extends Controller
{
    /**
     * @var \Abiodunjames\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);
    }

}

Close meeting

use Abiodunjames\Bigbluebutton\Contracts\Meeting;
use BigBlueButton\Parameters\EndMeetingParameters;
use Illuminate\Http\Request;

class MeetingController extends Controller
{
    /**
     * @var \Abiodunjames\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);
    }
}

Via Laravel Facade

You can also manage meetings using the facade

Meeting::all(); //get a list of all meetings
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].