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.
See git history.
getSessions endpoint: returns one session per joined user (GetSessionsResponse, Core\Session)learningDashboard endpoint: learning dashboard data of a running meeting (moderator session required)getJoinUrl endpoint: generates new /join URLs for existing user sessionssendChatMessage endpoint: sends a public chat message into a running meetingfeedback endpoint (experimental: reserved in the BBB server source, not routed on current BBB releases)insertDocument: documents via DocumentUrl / DocumentFileclientSettingsOverride POST module (HTML5 client settings per meeting) and clientSettingsOverrideJsonUrl variantsharedNotesEditor, sharedNotesInitialContentJsonUrl, sharedNotesInitialContentJson POST module, sharedNotesInitialContentMarkdown, sharedNotesInitialContentMarkdownUrl, sharedNotesInitialContentMarkdown POST module)loginURL, pluginManifests, pluginManifestsFetchUrl, presentationConversionCacheEnabled, maxNumPages, multiUserWhiteboardEnabled, recordFullDurationMedia, notifyRecordingIsOn, presentationUploadExternalUrl/DescriptionmaxPinnedCameras, darklogo, logoutTimer, cameraBridge, screenShareBridge, audioBridge, lockSettingsHideViewersAnnotation, breakout-room capture parameters (breakoutRoomsCaptureSlides/Notes incl. filenames)lockSettingsPresenterPolicy (new PresenterPolicy enum), notifyRecordingAppend, requireUserConsentBeforeUnmutingplugin_* metadata (addPluginMeta() / setPluginMeta())bot, enforceLayout, logoutURL, firstName, lastName, webcamBackgroundURL, errorRedirectUrlexistingUserID, replaceSessionToken, sessionNameauth parameter for the guest-policy evaluation (guestPolicy=ALWAYS_ACCEPT_AUTH)MeetingLayout enum: UNIFIED_LAYOUT, PLUGINS_ONLY, PARTICIPANTS_AND_CHAT_ONLYFeature enum (disabledFeatures): privateChat, plugins, multiFunctionalMode, pinChatMessage and all 3.0 optionsApiVersionResponse: graphqlWebsocketUrl, graphqlApiUrl, html5PluginSdkVersionBigBlueButton::createWithHttpClient() accepts any PSR-18 client with PSR-17 factories; curl remains the dependency-free default. Multipart uploads (caption tracks), BadResponseException error handling and JSESSIONID capture work identically through both transports.getJoinUrl now parses the real JSON response of the BBB server (the previous XML-based implementation could never work against a real server); former getters are kept as deprecated BC-stubsputRecordingTextTrack uploads the caption track as POST multipart with a file field (was a GET request without file); PutRecordingTextTrackParameters::setTrackFile() provides the trackPutRecordingTextTrackResponse::isUploadTrackSuccess() and friends evaluate the message key of successful responses, tooBigBlueButton::__construct($baseUrl, $secret) no longer mixes up the two arguments when passed explicitlyBaseJsonResponse reads missing message/messageKey properties null-safeDocumentFile throws its dedicated exception on unreadable files instead of emitting a PHP warning firstgetJSessionId() no longer fails on uninitialized access before a session id was captureddisabledFeatures, disabledFeaturesExclude) are no longer serialized as empty strings on every request; the hooks eventID parameter is deliberately still sent empty — the webhooks application echoes it with an empty elementbreakoutRoomsEnabled, learningDashboardEnabled, virtualBackgroundsDisabled (replaced by disabledFeatures), copyright, webVoice (no effect since BBB 4.0)defaultLayout (use userdata-bbb_default_layout), webVoiceConf (no effect since BBB 4.0)Feature::LAYOUTS (no longer a valid disabledFeatures option since BBB 4.0)psr/http-client and psr/http-factory are optional (suggest): the library itself ships without package dependencies and uses curl by defaultJoinMeetingParameters::enforceLayout accepts MeetingLayout|string and is exposed as MeetingLayout enumgetJoinMeetingURL() is officially supported again and documented as the standard join flow; joinMeeting() carries a warning that server-side joins skip the session cookiecomposer code-coverageSee git history.
See git history.
See git history.
See git history.
How can I help you explore Laravel packages today?