conferenciacorp/bigbluebutton-api-php

PHP 的 BigBlueButton API 库

dev-master 2017-09-06 11:42 UTC

This package is auto-updated.

Last update: 2024-09-29 04:03:24 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-php 分支出来的

PHP 的 BigBlueButton API

要求

  • PHP 5.4 或更高版本。
  • 已安装 Curl 库。

BigBlueButton PHP API 也经过测试,可以与 HHVM 一起工作,并且完全兼容 PHP 7.1。

安装

bigbluebutton-api-php 可以通过 Composer CLI 安装

composer require conferenciacorp/bigbluebutton-api-php

使用

您应该在您的服务器上定义环境变量 BBB_SECURITY_SALTBBB_SERVER_BASE_URL。*如果您使用 Laravel,可以在 .env 文件中添加它。

之后,您将能够调用您服务器的 BigBlueButton API。创建会议的简单用法示例如下

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();

示例

获取会议


use BigBlueButton\BigBlueButton;

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

if ($response->getReturnCode() == 'SUCCESS') {
	foreach ($response->getRawXml()->meetings->meeting as $meeting) {
		// process all 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
}

加入会议


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);

关闭会议


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

$bbb = new BigBlueButton();

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

获取会议信息


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();
}

获取录音


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
	}
}

请注意,BigBlueButton 需要几分钟的时间来处理录音,直到它可用。
您可以在 bbb-record --watch 中检查

删除录音


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
}

提交错误和功能请求

错误和功能请求在 GitHub 上跟踪

贡献指南

代码风格

确保通过运行 PHPCS-Fixer 应用代码风格配置。

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

运行测试

对于每个实现的功能,添加单元测试,并运行以下命令检查所有测试都为绿色。

./vendor/bin/phpunit