jubaer/zoom-laravel
Composer 安装命令:
composer require jubaer/zoom-laravel
包简介
A comprehensive Zoom integration package for Laravel, providing easy-to-use API functionality to interact with the Zoom platform using PHP.
README 文档
README
The Laravel Zoom API Client is a powerful and comprehensive package designed to provide Laravel users with a unified and consistent approach to integrating Zoom APIs into their applications. With this package, developers can seamlessly interact with Zoom's feature-rich video communication platform, enabling them to create, manage, and enhance their Zoom meetings and webinars effortlessly.
Installation
You can install the package via composer:
composer require jubaer/zoom-laravel
Configuration file
Publish the configuration file
php artisan vendor:publish --provider="Jubaer\Zoom\ZoomServiceProvider"
then add config/app.php
'providers' => [ // ... Jubaer\Zoom\ZoomServiceProvider::class, ];
then add config/app.php
'aliases' => [ // ... 'Zoom' => Jubaer\Zoom\Facades\Zoom::class, ];
This will create a zoom.php config file within your config directory for common user settings:-
return [ 'client_id' => env('ZOOM_CLIENT_KEY'), 'client_secret' => env('ZOOM_CLIENT_SECRET'), 'account_id' => env('ZOOM_ACCOUNT_ID'), 'base_url' => 'https://api.zoom.us/v2/', ];
for a user specific user zoom configuration add User model:
public static function clientID() { return 'zoom_client_of_user'; } public static function clientSecret() { return 'zoom_client_secret_of_user'; } public static function accountID() { return 'zoom_account_id_of_user'; }
How to get Zoom API credentials
- Go to https://marketplace.zoom.us/develop/create and create a Server-to-Server OAuth app

- then click on Continue

- then fill up the form and click on Continue

- then click on Continue
- then click on Add Scopes

- then mark all scopes and click on Done

- then click on Continue
- then activate your app
- then copy your API Key and API Secret
Usage
At present we cover the following modules
- Users
- Meetings
- Past Meetings
- Webinars
- Past Webinars
- Recordings
- Past Recordings
Common get functions
Create a meeting
$meetings = Zoom::createMeeting([ "agenda" => 'your agenda', "topic" => 'your topic', "type" => 2, // 1 => instant, 2 => scheduled, 3 => recurring with no fixed time, 8 => recurring with fixed time "duration" => 60, // in minutes "timezone" => 'Asia/Dhaka', // set your timezone "password" => 'set your password', "start_time" => 'set your start time', // set your start time "template_id" => 'set your template id', // set your template id Ex: "Dv4YdINdTk+Z5RToadh5ug==" from https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingtemplates "pre_schedule" => false, // set true if you want to create a pre-scheduled meeting "schedule_for" => 'set your schedule for profile email ', // set your schedule for "settings" => [ 'join_before_host' => false, // if you want to join before host set true otherwise set false 'host_video' => false, // if you want to start video when host join set true otherwise set false 'participant_video' => false, // if you want to start video when participants join set true otherwise set false 'mute_upon_entry' => false, // if you want to mute participants when they join the meeting set true otherwise set false 'waiting_room' => false, // if you want to use waiting room for participants set true otherwise set false 'audio' => 'both', // values are 'both', 'telephony', 'voip'. default is both. 'auto_recording' => 'none', // values are 'none', 'local', 'cloud'. default is none. 'approval_type' => 0, // 0 => Automatically Approve, 1 => Manually Approve, 2 => No Registration Required ], ]);
Get a meeting
$meeting = Zoom::getMeeting($meetingId);
Update a meeting
$meeting = Zoom::updateMeeting($meetingId, [ "agenda" => 'your agenda', "topic" => 'your topic', "type" => 2, // 1 => instant, 2 => scheduled, 3 => recurring with no fixed time, 8 => recurring with fixed time "duration" => 60, // in minutes "timezone" => 'Asia/Dhaka', // set your timezone "password" => 'set your password', "start_time" => 'set your start time', // set your start time "template_id" => 'set your template id', // set your template id Ex: "Dv4YdINdTk+Z5RToadh5ug==" from https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingtemplates "pre_schedule" => false, // set true if you want to create a pre-scheduled meeting "schedule_for" => 'set your schedule for profile email ', // set your schedule for "settings" => [ 'join_before_host' => false, // if you want to join before host set true otherwise set false 'host_video' => false, // if you want to start video when host join set true otherwise set false 'participant_video' => false, // if you want to start video when participants join set true otherwise set false 'mute_upon_entry' => false, // if you want to mute participants when they join the meeting set true otherwise set false 'waiting_room' => false, // if you want to use waiting room for participants set true otherwise set false 'audio' => 'both', // values are 'both', 'telephony', 'voip'. default is both. 'auto_recording' => 'none', // values are 'none', 'local', 'cloud'. default is none. 'approval_type' => 0, // 0 => Automatically Approve, 1 => Manually Approve, 2 => No Registration Required ], ]);
Delete a meeting
$meeting = Zoom::deleteMeeting($meetingId);
Get all meetings
$meetings = Zoom::getAllMeeting();
Get a meeting
$meeting = Zoom::getMeeting($meetingId);
Get all upcoming meetings
$meetings = Zoom::getUpcomingMeeting();
Get all past meetings
$meetings = Zoom::getPreviousMeetings();
reschedule meeting
$meetings = Zoom::rescheduleMeeting($meetingId, [ "agenda" => 'your agenda', "topic" => 'your topic', "type" => 2, // 1 => instant, 2 => scheduled, 3 => recurring with no fixed time, 8 => recurring with fixed time "duration" => 60, // in minutes "timezone" => 'Asia/Dhaka', // set your timezone "password" => 'set your password', "start_time" => 'set your start time', // set your start time "template_id" => 'set your template id', // set your template id Ex: "Dv4YdINdTk+Z5RToadh5ug==" from https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingtemplates "pre_schedule" => false, // set true if you want to create a pre-scheduled meeting "schedule_for" => 'set your schedule for profile email ', // set your schedule for "settings" => [ 'join_before_host' => false, // if you want to join before host set true otherwise set false 'host_video' => false, // if you want to start video when host join set true otherwise set false 'participant_video' => false, // if you want to start video when participants join set true otherwise set false 'mute_upon_entry' => false, // if you want to mute participants when they join the meeting set true otherwise set false 'waiting_room' => false, // if you want to use waiting room for participants set true otherwise set false 'audio' => 'both', // values are 'both', 'telephony', 'voip'. default is both. 'auto_recording' => 'none', // values are 'none', 'local', 'cloud'. default is none. 'approval_type' => 0, // 0 => Automatically Approve, 1 => Manually Approve, 2 => No Registration Required ], ]);
end meeting
$meetings = Zoom::endMeeting($meetingId);
delete meeting
$meetings = Zoom::deleteMeeting($meetingId);
recover meeting
$meetings = Zoom::recoverMeeting($meetingId);
Get all users
$users = Zoom::getUsers(['status' => 'active']); // values are 'active', 'inactive', 'pending'. default is active. and you can pass page_size and page_number as well
Changelog
Please see CHANGELOG for more information what has changed recently.
Security
If you discover any security related issues, please email jubaer01.cse@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
jubaer/zoom-laravel 适用场景与选型建议
jubaer/zoom-laravel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 126.84k 次下载、GitHub Stars 达 59, 最近一次更新时间为 2023 年 06 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「client」 「laravel」 「zoom」 「laravel-zoom」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jubaer/zoom-laravel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jubaer/zoom-laravel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jubaer/zoom-laravel 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
Mock PSR-18 HTTP client
Asynchronous MQTT client built on React
Client for Google Directions API to add interpolated points to a route consisting of given coordinates.
Alfabank REST API integration
A Flickr wrapper to allow you to call the Flickr api with Guzzle as the backend.Goal is to have 100% Flickr api coverage rather than just upload/display photos (currently at 23%).
统计信息
- 总下载量: 126.84k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 59
- 点击次数: 29
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-06-08