Skip to main content

🐘 PHP example

<?php
$endpoint = 'https://bbb.example.com/bigbluebutton/api';
$secret = 'YOUR_SHARED_SECRET';

// 1) Build create params (query string)
$params = [
'name' => 'Demo with Overrides',
'meetingID' => 'demo-123',
'attendeePW' => 'ap',
'moderatorPW'=> 'mp',
'allowOverrideClientSettingsOnCreateCall' => 'true',
];
$query = http_build_query($params);

// 2) Compute checksum for create
$checksum = sha1('create' . $query . $secret);
$url = "{$endpoint}/create?{$query}&checksum={$checksum}";

// 3) Build POST body (XML with JSON inside CDATA)
$override = [
'public' => [
'app' => ['appName' => 'Greenlight', 'helpLink' => 'greenlight.example.com'],
'defaultSettings' => [
'application' => ['autoJoin' => true, 'askForConfirmationOnLeave' => false],
'user' => ['userSettingsStorage' => 'sessionStorage', 'application' => ['overrideLocale' => 'en']],
],
],
];
$json = json_encode($override, JSON_UNESCAPED_SLASHES);
$xmlBody = "<modules><module name=\"clientSettingsOverride\"><![CDATA[{$json}]]></module></modules>";

// 4) POST it
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/xml'],
CURLOPT_POSTFIELDS => $xmlBody,
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new \RuntimeException('cURL error: ' . curl_error($ch));
}
curl_close($ch);

header('Content-Type: text/xml');
echo $response;