joisarjignesh/bigbluebutton

BigBlueButton 服务器 API 库用于 Laravel

v2.8 2024-03-26 06:11 UTC

README

laravel-bigbluebutton

BigBlueButton 服务器 API 库用于 Laravel

License Latest Version on Packagist Build Status Quality Score Total Downloads Laravel Framework

提供在大蓝按钮服务器和 Laravel 框架之间轻松通信的包

要求

  • Laravel 5.5 或以上。

安装

您可以通过 composer 安装此包

composer require joisarjignesh/bigbluebutton

安装包后发布配置文件

php artisan vendor:publish --tag=bigbluebutton-config

使用方法

  • 在 config/bigbluebutton.php 文件中定义
BBB_SECURITY_SALT=bbb_secret_key   
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
  • 对于特定服务器配置(默认情况下为多服务器,可选)
'servers' => [
       'server1' => [
           'BBB_SECURITY_SALT'    => '',
           'BBB_SERVER_BASE_URL'  => '',
       ],
 ]

定义盐和 URL 后清除旧配置

php artisan config:clear

API

检查 URL 和密钥是否正常工作

dd(\Bigbluebutton::isConnect()); //default 
dd(\Bigbluebutton::server('server1')->isConnect()); //for specific server 
dd(bigbluebutton()->isConnect()); //using helper method 

会议

创建会议

  • 您可以通过三种方式创建会议 文档

1.通过传递数组

\Bigbluebutton::create([
    'meetingID' => 'tamku',
    'meetingName' => 'test meeting',
    'attendeePW' => 'attendee',
    'moderatorPW' => 'moderator'
]); 

2.通过传递 CreateMeetingParameters 对象来自定义创建会议

use BigBlueButton\Parameters\CreateMeetingParameters;

$meetingParams = new CreateMeetingParameters($meetingID, $meetingName);
$meetingParams->setModeratorPW('moderatorPassword');
$meetingParams->setAttendeePW('attendeePassword');

\Bigbluebutton::create($meetingParams);

3.通过传递数组,它将返回 CreateMeetingParameters 对象以覆盖方法

$createMeeting = \Bigbluebutton::initCreateMeeting([
    'meetingID' => 'tamku',
    'meetingName' => 'test meeting',
    'attendeePW' => 'attendee',
    'moderatorPW' => 'moderator',
]);

$createMeeting->setDuration(100); //overwrite default configuration
\Bigbluebutton::create($createMeeting);
上传幻灯片
  • 您可以在创建会议的调用中上传幻灯片。如果您这样做,大蓝按钮服务器将立即下载并处理 幻灯片
    \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'],
        ],
    ]); 
结束会议回调 URL
  • 您可以让大蓝按钮服务器在会议结束时回调您的应用程序。在收到回调后,您的应用程序可以更改用户界面以隐藏“加入”按钮等。

    注意:结束会议回调 URL 将静默通知,用户不会重定向到该页面。

    如果您希望在会议结束后将用户重定向到该页面,则可以使用 logoutURL

\Bigbluebutton::create([
   'meetingID' => 'tamku',
   'meetingName' => 'test meeting',
   'attendeePW' => 'attendee',
   'moderatorPW' => 'moderator',
   'endCallbackUrl'  => 'www.example.com/callback',
   'logoutUrl' => 'www.example.com/logout',
]); 
录制准备回调 URL
  • 您可以让大蓝按钮服务器在会议录制准备观看时回调您的应用程序。在收到回调后,您的应用程序可以,例如,向演讲者发送电子邮件以通知他们他们的录制已准备好。

    注意:录制准备回调 URL 将静默通知,用户不会重定向到该页面。
\Bigbluebutton::create([
    'meetingID' => 'tamku',
    'meetingName' => 'test meeting',
    'attendeePW' => 'attendee',
    'moderatorPW' => 'moderator',
    'bbb-recording-ready-url'  => 'https://example.com/api/v1/recording_status',
]); 

加入会议

  • 加入会议(默认情况下将重定向到 BigBlueButton 服务器并加入会议) 文档
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
 ])
);
  • 加入会议但不希望重定向到 BigBlueButton 服务器并传递其他参数
\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'
    ]
]);

获取会议列表

\Bigbluebutton::all(); //using facade
bigbluebutton()->all(); //using helper method 

获取会议信息

use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;

Bigbluebutton::getMeetingInfo([
    'meetingID' => 'tamku',
    'moderatorPW' => 'moderator' //moderator password set here
]);

会议正在进行中

  • 会议是否在进行中 文档
Bigbluebutton::isMeetingRunning([
    'meetingID' => 'tamku',
]);

Bigbluebutton::isMeetingRunning('tamku'); //second way 

关闭会议

use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;

Bigbluebutton::close([
    'meetingID' => 'tamku',
    'moderatorPW' => 'moderator' //moderator password set here
]);

录制

获取录制

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

发布录制

\Bigbluebutton::publishRecordings([
   'recordID' => 'a3f1s',
    //'recordID' => ['xyz.1','pqr.1'] //pass as array if publish multiple recordings
   'state' => true //default is true  
]);

删除录制

\Bigbluebutton::deleteRecordings([
    //'recordID' => 'a3f1s',
    'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);

更新录制

\Bigbluebutton::updateRecordings([
    //'recordID' => 'a3f1s',
    'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);

钩子

创建钩子

dd(Bigbluebutton::hooksCreate([
      'callbackURL' => 'example.test', //required
      'meetingID' => 'tamku', //optional  if not set then hooks set for all meeting id
      'getRaw' => true //optional
]));

销毁钩子

dd(Bigbluebutton::hooksDestroy([
     'hooksID' => 33
]));

dd(Bigbluebutton::hooksDestroy('53')); //second way

其他

获取API版本

  • 获取API版本
dd(\Bigbluebutton::getApiVersion()); //return as collection 

非官方的

开始会议

  • 开始会议(首先检查会议是否存在,如果不存在则创建会议并加入会议,如果存在则直接加入会议)(默认用户以主持人身份加入)
$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);

更多信息请阅读此 维基

关于Bigbluebutton API测试请参阅此 ApiMate

查看Bigbluebutton官方开发API Bigbluebutton

支持

Buy Me A Coffee Donate

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全性

如果您发现任何安全相关的问题,请发送电子邮件至 jigneshjoisar@gmail.com 而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅 许可文件