A complete solution for integrating Zoom video conferencing into Laravel applications. Manage meetings, webinars, participants, and recordings with an elegant API.
✅ Complete Meeting Management - Create, update, delete, and list Zoom meetings
✅ Webinar Support - Schedule and manage webinars
✅ Participant Tracking - Track meeting participants and attendance
✅ Recording Management - Access and manage meeting recordings
✅ Webhook Integration - Real-time event notifications
✅ Database Storage - Store meeting data locally
✅ Laravel Integration - Native Laravel service provider, facades, and events
- PHP 8.0+
- Laravel 9.x or 10.x
- Zoom JWT App Credentials
- Install via Composer:
composer require quickhelper/quickzoom
- Publish config and migrations:
php artisan vendor:publish --provider="QuickZoom\Providers\QuickZoomServiceProvider"
- Add Zoom credentials to your
.env
:
ZOOM_API_KEY=your_zoom_api_key
ZOOM_API_SECRET=your_zoom_api_secret
ZOOM_WEBHOOK_SECRET=your_webhook_secret # Optional
- Run migrations:
php artisan migrate
use QuickZoom\Facades\QuickZoom;
// Create a meeting
$meeting = QuickZoom::createMeeting('me', [
'topic' => 'Team Meeting',
'start_time' => now()->addDay()->toIso8601String(),
'duration' => 60,
'agenda' => 'Quarterly planning session'
]);
// List meetings
$meetings = QuickZoom::listMeetings();
// Get meeting details
$meeting = QuickZoom::getMeeting($meetingId);
// End a meeting
QuickZoom::endMeeting($meetingId);
- Configure your Zoom app webhook in the Zoom Marketplace
- Add the webhook URL to your Zoom app settings (typically
https://yourdomain.com/api/zoom/webhook
) - Listen for events in your Laravel application:
// In your EventServiceProvider
protected $listen = [
\QuickZoom\Events\ZoomMeetingStarted::class => [
\App\Listeners\HandleMeetingStarted::class,
],
\QuickZoom\Events\ZoomParticipantJoined::class => [
\App\Listeners\HandleParticipantJoined::class,
],
// Other events...
];
Method | Description |
---|---|
listMeetings() |
List all meetings |
getMeeting() |
Get meeting details |
createMeeting() |
Schedule a new meeting |
updateMeeting() |
Update meeting details |
deleteMeeting() |
Delete a meeting |
endMeeting() |
End an ongoing meeting |
listParticipants() |
List meeting participants |
registerParticipant() |
Register participant for meeting |
listRecordings() |
Get meeting recordings |
createWebinar() |
Schedule a webinar |
listWebinars() |
List scheduled webinars |
Publish the configuration file to customize:
php artisan vendor:publish --tag=quickzoom-config
Available configuration options:
return [
'api_key' => env('ZOOM_API_KEY'),
'api_secret' => env('ZOOM_API_SECRET'),
'base_url' => 'https://api.zoom.us/v2/',
'webhook_secret' => env('ZOOM_WEBHOOK_SECRET'),
'default_settings' => [
'host_video' => true,
'participant_video' => true,
// ... other meeting defaults
],
'routes' => [
'prefix' => 'api/zoom',
'middleware' => ['api', 'auth:sanctum'],
'webhook_path' => 'webhook',
]
];
- Uses JWT authentication with Zoom API
- Webhook signature verification
- Encrypted API communication
- Token rotation and caching
Run the tests with:
composer test
See CHANGELOG.md for recent changes.
Contributions are welcome! Please see CONTRIBUTING.md for details.
The MIT License (MIT). See LICENSE.md for more information.
For issues and feature requests, please open an issue.