invokablegmbh/bbbserver-systemapi

Composer-installable PHP connector for the bbbserver BigBlueButton SystemAPI

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/invokablegmbh/bbbserver-systemapi

1.1.0 2026-02-18 13:18 UTC

This package is auto-updated.

Last update: 2026-02-18 13:24:47 UTC


README

This is a PHP module connecting to the bbbserver SystemAPI for BigBlueButton.

What is the SystemAPI for bbbserver?

BigBlueButton offers an official API which contains the most important endpoints for the handling confereces on a BigBlueButton server. However, default BBB lacks several features that are relevant for business use. This is why premium hosters (as e.g. bbbbserver) offer additional features (scheduled conferences, conference series, extended managing of users, managing of additional meeting features like AI).

bbbserver strives to have 100% feature coverage regarding their APIs. This is why they offer two separate APIs:

Installation

Install via Composer:

composer require bbbserver/systemapiconnector

Requirements:

  • PHP 7.4+
  • ext-curl (optional, recommended for best transport performance)

Configuration

The SystemAPI uses an API key via the X-API-KEY header.

You can either:

  • pass a full SystemAPI base URL and API key, or
  • use the bbbserver factory for language-aware defaults.
use BbbServer\SystemApiConnector\Configuration\SystemApiConfiguration;
use BbbServer\SystemApiConnector\SystemApiConnector;

$configuration = SystemApiConfiguration::forBbbserver(
	'YOUR_SYSTEMAPI_KEY',
	'en',
	'https://app.bbbserver.de'
);

$connector = SystemApiConnector::fromConfiguration($configuration);

Usage

<?php

use BbbServer\SystemApiConnector\SystemApiConnector;

$connector = SystemApiConnector::forBbbserver(
	'YOUR_SYSTEMAPI_KEY',
	'en'
);

$conferenceRooms = $connector->conferenceRooms()->list();

$conferenceRoom = $connector->conferenceRooms()->getConferenceRoom('ROOM_ID');
$conference = $connector->conferences()->createConference([
	'roomId' => 'ROOM_ID',
	'name' => 'Customer Webinar',
]);

$recordings = $connector->recordings()->listRecordings(['roomId' => 'ROOM_ID']);

$rootInfo = $connector->others()->root();

Direct request access is available if you need endpoints that are not wrapped yet:

$payload = $connector->request('GET', '/conferences', ['page' => 1]);

You can also use resource-local fallback requests for newly released API actions:

$payload = $connector->conferences()->request('GET', '/future-endpoint', ['key' => 'value']);

Development

Install dependencies:

composer install

Run tests:

composer test

Run only unit tests:

composer test:unit

Run integration tests (requires API key):

export BBBSERVER_SYSTEMAPI_BASE_URL="https://app.bbbserver.de/en/bbb-system-api"
export BBBSERVER_SYSTEMAPI_KEY="YOUR_SYSTEMAPI_KEY"
composer test:integration

Integration tests are skipped automatically when credentials are not provided.

The integration suite performs real API lifecycle checks in strict order:

  1. create conference room
  2. update conference room settings
  3. create conference
  4. get conference
  5. update conference
  6. delete conference
  7. delete conference room

Cleanup safeguards run in tearDownAfterClass() to remove created entities if a test fails mid-sequence.