philharmonie / laravel-zoom-meetings
Create Zoom Meetings
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.5
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
README
With this package you can create Zoom meetings from your Laravel application using Server-To-Server OAuth.
Installation
You can install the package via composer:
composer require philharmonie/laravel-zoom-meetings
You can publish the config file with:
php artisan vendor:publish --tag="zoom-meetings-config"
This is the contents of the published config file:
return [ 'account_id' => env('ZOOM_ACCOUNT_ID'), 'client_id' => env('ZOOM_CLIENT_ID'), 'client_secret' => env('ZOOM_CLIENT_SECRET'), 'base_url' => 'https://api.zoom.us/v2/', 'token_url' => 'https://zoom.us/oauth/token', ];
Preparing your Zoom account
Create a Server-to-Server OAuth app in your Zoom account following this
instruction: https://developers.zoom.us/docs/internal-apps/create/.
You will need the user:read:admin meeting:write:admin
scopes.
Save the Account ID, Client ID and Client Secret in your .env
file.
Usage
$access_token = Auth::getToken(); $meeting = Meeting::setAccessToken($access_token)->create([ 'topic' => 'Test Meeting', 'type' => 2, 'start_time' => now()->addDay()->startOfHour()->format('Y-m-d\TH:i:s'), 'duration' => 60, ], 'mail@example.com');
See the test cases for more usage examples.
Testing
cp phpunit.xml.dist phpunit.xml
Update the environment variables in phpunit.xml
:
<php> <env name="ZOOM_ACCOUNT_ID" value=""/> <env name="ZOOM_CLIENT_ID" value=""/> <env name="ZOOM_CLIENT_SECRET" value=""/> <env name="ZOOM_EMAIL_ACCOUNT" value=""/> </php>
Run
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
If you discover any security-related issues, please email phil@harmonie.media instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.