bigbluebutton/bigbluebutton-api-php
Official BigBlueButton API client for PHP (7.4+). Provides an easy, modern way to call BigBlueButton server endpoints, build and send API requests, and integrate meetings and recordings into your PHP apps with documented examples and samples.
bigbluebutton/bigbluebutton-api-php package remains a dedicated PHP SDK for BBB integration, ideal for Laravel-based applications requiring video conferencing, webinar, or virtual classroom functionality. The addition of the insertDocument API expands use cases to document sharing, collaborative whiteboarding, or file uploads during meetings, aligning with:
insertDocument can be integrated into:
insertDocument API is now fully supported, reducing reliance on undocumented endpoints. However, the rewrite in v3.0.0 introduces breaking changes, requiring planning for future upgrades.urlBuilder fix ensures stability for existing integrations. New APIs like insertDocument can be wrapped in custom service methods (e.g., MeetingService::insertDocument($meetingId, $file)).meetings table with:
documents pivot table (e.g., meeting_id, document_url, inserted_at).| Risk | Mitigation Strategy |
|---|---|
| Breaking Changes (v3.0.0) | Pin to 2.3.x for stability; plan a migration sprint to v3.0.0 when ready. Use Composer’s ^2.3 to avoid auto-upgrades. |
| Document API Complexity | Test insertDocument with edge cases (e.g., large files, unsupported formats). Use Laravel’s validation to sanitize inputs before API calls. |
| Rate Limiting | Monitor BBB’s response to bulk document insertions; implement queue batching if needed. |
| Deprecation Risk | Fork the package if BBB’s API evolves faster than the PHP SDK updates. |
| Authentication | Ensure insertDocument uses the same auth flow as other endpoints (e.g., OAuth tokens stored in Laravel’s env()). |
| Performance | Benchmark document insertion latency; consider chunked uploads for large files via Laravel’s ChunkUpload or similar. |
insertDocument API is now fully supported in 2.3.x.Storage::disk('s3')->put()) for pre-processing.meeting_document pivot table).insertDocument compatibility.Phase 1: Core Integration (2.3.x)
2.3.1:
composer require bigbluebutton/bigbluebutton-api-php:^2.3
urlBuilder regression (if affected) by ensuring your Laravel service provider initializes the BBB client correctly.Phase 2: Advanced Features
class InsertDocumentJob implements ShouldQueue
{
public function handle()
{
$bbb = app(BBBClient::class);
$bbb->insertDocument($meetingId, $filePath);
}
}
document.inserted events (if BBB supports this).Route::post('/bbb/webhook', [BBBWebhookController::class, 'handle']);
meeting_document table:
Schema::create('meeting_documents', function (Blueprint $table) {
$table->id();
$table->foreignId('meeting_id')->constrained()->cascadeOnDelete();
$table->string('document_url');
$table->string('original_name');
$table->timestamps();
});
Phase 3: Optimization
meeting_list and document_list responses using Laravel’s cache() facade.$middleware = [ThrottleRequests::class . ':10,1/minute'];
insertDocument API (check BBB API docs).insertDocument match those used in other endpoints.| Step | Dependency | Tools/Tech |
|---|---|---|
| 1. Install/Upgrade | BBB API credentials | Composer, Laravel Config |
2. Fix urlBuilder |
Laravel service provider | Dependency Injection |
| 3. Basic Document API | Laravel HTTP client | Guzzle, Facades |
| 4. Queue Jobs | File storage (S3/local) | Laravel Queues, Storage Facade |
| 5. Database Sync | meeting_document schema |
Laravel Migrations, Eloquent |
| 6. Webhook Setup | BBB webhook URL | Laravel Routes, Queue Workers |
| 7. Error Handling | Retry logic for failures | Laravel Exceptions, Queue Retries |
| 8. Monitoring | API response times, queue health | Laravel Horizon, Prometheus |
| 9. Plan v3.0.0 Up |
How can I help you explore Laravel packages today?