Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Bigbluebutton Api Php

Bigbluebutton Api Php Laravel Package

bigbluebutton/bigbluebutton-api-php

Official PHP 8.2+ client for the BigBlueButton API. Wraps meeting creation, joining, recording management, and server administration in a developer-friendly interface, installable via Composer for quick integration into PHP applications.

View on GitHub
Deep Wiki
Context7

The BigBlueButton PHP API Client is the official, developer-friendly wrapper for integrating BigBlueButton web conferencing into PHP applications. Requiring PHP 8.2+ and installable via Composer, it simplifies connecting to and managing your BigBlueButton server from any PHP project.

  • Composer-ready installation and autoloading
  • Full API coverage for meetings, recordings, and users
  • Clean, object-oriented interface for server requests
  • Actively maintained by the BigBlueButton team
  • Well-tested with published build and coverage metrics
Frequently asked questions about Bigbluebutton Api Php
How do I install bigbluebutton/bigbluebutton-api-php in a Laravel project?
Install it with Composer by running composer require bigbluebutton/bigbluebutton-api-php. It requires PHP 8.2 or newer, and since version 3.0 it has zero required package dependencies because it ships with a curl-based transport by default. Composer autoloading means you can use the classes anywhere in your Laravel app immediately, but you will write your own service provider binding if you want dependency injection.
Is bigbluebutton/bigbluebutton-api-php a Laravel package with a service provider and facade?
No. It is a framework-agnostic PHP SDK, so there is no service provider, facade, config file, migration, or publishable asset. It also provides no Eloquent models or persistence, because BigBlueButton remains the system of record for live meeting state. The recommended approach is to bind a single BigBlueButton client instance in your own service provider and wrap it behind an interface so BigBlueButton types never leak outside one adapter namespace.
Which PHP and Laravel versions does this client support?
The library requires PHP 8.2 or higher, matching currently supported PHP releases. Because it is framework-agnostic, any Laravel version running on PHP 8.2+ can use it, including Laravel 10, 11, and 12. Check the changelog before upgrading major versions, since removed members are kept only as deprecated stubs for backward compatibility.
How do I create a meeting and generate a join URL with this library?
Build a CreateMeetingParameters object with the meeting ID, name, and options, pass it to the client's createMeeting method, then generate attendee links with getJoinUrl or a JoinMeetingParameters object. The returned join URL is intended for a browser redirect, which is the documented standard and far simpler than cookie or JSESSIONID server-side join flows. Store your own local record of the meeting ID for scheduling, entitlements, and audit purposes only.
Does the client work with BigBlueButton 2.7, 3.0, and 4.0 servers?
The 3.0 release claims drop-in backward compatibility with 2.x and 3.x servers, with removed members kept as deprecated stubs to ease incremental rollouts. Be aware that several Create and Join parameters, such as webVoice, copyright, defaultLayout, and the LAYOUTS feature flag, are silently inert on BigBlueButton 4.0, which is a quiet-failure class where calls succeed but behaviour does not change. Pin both the SDK and the server version, and document a supported compatibility matrix.
How do I list, publish, and delete recordings with the PHP client?
Use getRecordings to fetch recordings by meeting ID or recording ID, publishRecordings to make them visible, and deleteRecordings to remove them. Recording processing itself is handled entirely by the BigBlueButton server's recording pipeline, not by this library, so storage costs and retention policy are your responsibility. For a first version, linking out to the playback URL is much cheaper than building in-app playback.
Can I replace the default curl transport with Guzzle or another PSR-18 client?
Yes. Since version 3.0 you can call BigBlueButton::createWithHttpClient to inject any PSR-18 HTTP client with a PSR-17 request factory, which lets you reuse Guzzle or Laravel's existing HTTP client stack. This is useful for centralising timeouts, retries, proxies, and logging. The default curl transport works fine if you do not need that control.
How do I test BigBlueButton integration in Laravel without a live server?
Do not mock the SDK's internals directly; instead mock the interface you wrapped around it, or inject a fake PSR-18 HTTP client that returns canned XML responses. Because the library is stateless and holds no persistence, your tests stay fast and deterministic. Assert on the request parameters you send, such as meeting ID and join options, since parameter drift is the most common real-world failure.
What are the licensing implications of LGPL-3.0 for a Laravel SaaS app?
SaaS use is generally acceptable because you are not distributing the library. Distributing the application, for example as an on-premise appliance, white-label build, or Docker image shipped to customers, triggers LGPL obligations around the library and the ability for recipients to relink or replace it. Route any distribution scenario to legal before committing to an on-premise SKU.
What else do I need to run this in production besides the Composer package?
This package is only the client; a production BigBlueButton deployment requires a dedicated host or fleet, coturn/TURN, Redis, FreeSWITCH, a recording pipeline, and significant bandwidth. Adopting the SDK is implicitly a decision to operate or buy BigBlueButton hosting, whether self-hosted, managed, or vendor-provided. Scope that explicitly and confirm your concurrency target per meeting and across tenants, plus expected recording volume and retention, before estimating the work.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr
laravel2580/idehelpers
delatbabel/viewpages
anavel/gettext
muhamadrezaar/highcharts
delatbabel/keylists
frankkessler/salesforce-laravel-oauth2-rest
anavel/foundation
wdmtech/enviricons
eii/laravel-captcha
muka/shape-reader
tdt/json