yaangvu/bbb-api-php

This package is abandoned and no longer maintained. The author suggests using the yaangvu-bbb-api-php package instead.

BigBlueButton PHP API Library for PHP updated by YaangVu

1.0.3 2017-10-20 13:23 UTC

This package is auto-updated.

Last update: 2021-04-18 12:35:26 UTC


README

Build Status Scrutinizer Code Quality Coverage Status Downloads @bigbluebutton on Twitter

PHP 5.4 PHP 5.5 PHP 5.6 PHP 7 PHP 7.1

BigBlueButton API for PHP

The official and easy to use BigBlueButton API for PHP, makes easy for developers to use BigBlueButton API for PHP 5.4+.

Requirements

  • PHP 5.4 or above.
  • Curl library installed.

BigBlueButton API for PHP is also tested to work with HHVM and fully compatible with PHP 7.1.

Installation

bigbluebutton-api-php can be installed via Composer CLI

composer require yaangvu/bbb-api-php:1.0.0

or by editing Composer.json

{
    "require": {
        "yaangvu/bbb-api-php": "1.0.0"
    }
}

Usage

You should have environment variables BBB_SECURITY_SALT and BBB_SERVER_BASE_URL defined in your sever. *if you are using Laravel you can add it in your .env

The you will be able to call BigBlueButton API of your server. A simple usage example for create meeting looks like:

use BigBlueButton/BigBlueButton;

$bbb                 = new BigBlueButton();
$createMeetingParams = new CreateMeetingParameters('bbb-meeting-uid-65', 'BigBlueButton API Meeting');
$response            = $bbb->createMeeting($createMeetingParams);

echo "Created Meeting with ID: " . $response->getMeetingId();

Example

# Get meetings

use BigBlueButton\BigBlueButton;

$bbb = new BigBlueButton();
$response = $bbb->getMeetings();

if ($response->getReturnCode() == 'SUCCESS') {
	foreach ($response->getRawXml()->meetings->meeting as $meeting) {
		// process all meeting
	}
}

# Create Meeting

use BigBlueButton\BigBlueButton;
use BigBlueButton\Parameters\CreateMeetingParameters;

$bbb = new BigBlueButton();

$createMeetingParams = new CreateMeetingParameters($meetingID, $meetingName);
$createMeetingParams->setAttendeePassword($attendee_password);
$createMeetingParams->setModeratorPassword($moderator_password);
$createMeetingParams->setDuration($duration);
$createMeetingParams->setLogoutUrl($urlLogout);
if ($isRecordingTrue) {
	$createMeetingParams->setRecord(true);
	$createMeetingParams->setAllowStartStopRecording(true);
	$createMeetingParams->setAutoStartRecording(true);
}

$response = $bbb->createMeeting($createMeetingParams);
if ($response->getReturnCode() == 'FAILED') {
	return 'Can\'t create room! please contact our administrator.';
} else {
	// process after room created
}

# Join Meeting

use BigBlueButton\BigBlueButton;
use BigBlueButton\Parameters\JoinMeetingParameters;

$bbb = new BigBlueButton();

$joinMeetingParams = new JoinMeetingParameters($meetingID, $name, $password); // $moderator_password for moderator
$joinMeetingParams->setRedirect(true);
$url = $bbb->getJoinMeetingURL($joinMeetingParams);

// header('Location:' . $url);

# Close Meeting

use BigBlueButton\BigBlueButton;
use BigBlueButton\Parameters\EndMeetingParameters;

$bbb = new BigBlueButton();

$endMeetingParams = new EndMeetingParameters($meetingID, $moderator_password);
$response = $bbb->endMeeting($endMeetingParams);

# Get Meeting Info

use BigBlueButton\BigBlueButton;
use BigBlueButton\Parameters\GetMeetingInfoParameters;

$bbb = new BigBlueButton();

$getMeetingInfoParams = new GetMeetingInfoParameters($meetingID, '', $moderator_password);
$response = $bbb->getMeetingInfo($getMeetingInfoParams);
if ($response->getReturnCode() == 'FAILED') {
	// meeting not found or already closed
} else {
	// process $response->getRawXml();
}

# Get Recordings

use BigBlueButton\BigBlueButton;
use BigBlueButton\Parameters\GetRecordingsParameters;

$recordingParams = new GetRecordingsParameters();
$bbb = new BigBlueButton();
$response = $bbb->getRecordings($recordingParams);

if ($response->getReturnCode() == 'SUCCESS') {
	foreach ($response->getRawXml()->recordings->recording as $recording) {
		// process all recording
	}
}

note that BigBlueButton need about several minutes to process recording until it available.
You can check in bbb-record --watch

# Delete Recording

use BigBlueButton\BigBlueButton;
use BigBlueButton\Parameters\DeleteRecordingsParameters;

$bbb = new BigBlueButton();
$deleteRecordingsParams= new DeleteRecordingsParameters($recordingID); // get from "Get Recordings"
$response = $bbb->deleteRecordings($deleteRecordingsParams);

if ($response->getReturnCode() == 'SUCCESS') {
	// recording deleted
} else {
	// something wrong
}

Submitting bugs and feature requests

Bugs and feature request are tracked on GitHub

Contributing guidelines

Code style

Make sure the code style configuration is applied by running PHPCS-Fixer.

./vendor/bin/php-cs-fixer fix

Runing tests

For every implemented feature add unit tests and check all is green by running the command below.

./vendor/bin/phpunit