iclimber / laravel-zoom
Laravel Zoom 包
Requires
- php: ^7.2
- firebase/php-jwt: ^5.0
- guzzlehttp/guzzle: ~6.0|~5.0|~4.0
- illuminate/support: ^5.2|^6.0|^7.0
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
README
用于管理 Laravel 中 Zoom API 的包
安装
您可以通过 composer 安装此包
composer require iclimber/laravel-zoom
服务提供者应自动注册(适用于 Laravel > 5.4)。
对于 Laravel < 5.5,请打开 config/app.php,并在 providers 数组中追加
IClimber\Zoom\Providers\ZoomServiceProvider::class
配置文件
发布配置文件
php artisan vendor:publish --provider="IClimber\Zoom\Providers\ZoomServiceProvider"
这将创建 config 目录中的 zoom/config.php,在其中添加 api_key 和 api_secret 的值。
使用方法
一切已设置得与 Laravel 语法相似。
不幸的是,Zoom API 并不十分统一,有点杂乱无章,所以目前有一些技巧才能使其工作。我们将重构并改进这一点。
我们使用关系,因此您需要检查 Zoom API,例如,要获取会议或网络研讨会列表,您需要传递用户 ID。我们使用一点关系魔法以更 Laravel 方式实现。
如果您想与 JWT 应用一起工作
$zoom = new \IClimber\Zoom\Zoom();
如果您想与 OAuth 应用一起工作
//user bearer token $zoom = new \IClimber\Zoom\Zoom('eyJhbGc...');
要获取用户信息
$userBearerToken = 'eyJhbGc...'; $zoom = new \IClimber\Zoom\Zoom($userBearerToken); //for Account Level App or JWT $user = $zoom->user->find('test@domain.com'); //or $user = $zoom->user->first(); //for User Managed App $user = $zoom->user->me();
获取会议列表
$zoom = new \IClimber\Zoom\Zoom(); //for Account Level App or JWT $meetings = $zoom->user->find('test@domain.com')->meetings()->all(); //for User Managed App use method "user->me()" $meetings = $zoom->user->me()->meetings()->all();
获取用户访问令牌
//Get access and refresh token by user authorization code $userAccessData = Zoom::getUserAccessData('obBEe8ewaL_KdYKjnimT4KPd8KKdQt9FQ', 'my redirect url'); //Refresh token $userAccessData = Zoom::refreshToken('eyJhbGc...'); //Revoke token Zoom::revokeToken('eyJhbGc...');
查找所有
查找所有函数返回 Laravel Collection,您可以使用所有 Laravel Collection 魔法
$zoom = new \IClimber\Zoom\Zoom(); $users = $zoom->user->all();
过滤
API 中可以过滤结果的情况很少,但您可以在可以的地方使用 where 函数。再次检查 API 文档以了解您可以在哪里添加查询到请求。要执行操作,您可以这样做
$zoom = new \IClimber\Zoom\Zoom(); $thing = $zoom->thing->where('Name', '=', 'Test Name')->get();
如果您想使用等号,也可以仅传递名称和值
$zoom = new \IClimber\Zoom\Zoom(); $thing = $zoom->thing->where('Name', 'Test Name')->get();
要获取单个项目,请使用 'first' 方法
$zoom = new \IClimber\Zoom\Zoom(); $thing = $zoom->thing->where('Name', 'Test Name')->first();
按 ID 查找
与 Laravel 一样,我们可以使用 'find' 方法根据 ID 返回单个匹配结果。对于用户/注册者/评论员,您也可以使用电子邮件以及 ID。
$zoom = new \IClimber\Zoom\Zoom(); $meeting = $zoom->meeting->find('000000000');
创建项目
我们可以使用 save 函数创建和更新记录,下面是创建的完整 save 脚本。
$user = $zoom->user->create([ 'name' => 'Test Name', 'first_name' => 'First Name', 'last_name' => 'Last Name', 'email' => 'test@test.com', 'password' => 'secret', 'type' => 1 ]); $meeting = $user->meetings()->create([ 'type' => '2', 'start_time' => '2019-06-29T20:00:00Z', 'password' => '12345', 'settings' => [ 'join_before_host' => true ] ]); $meeting->topic = 'Meeting name'; $meetings->password = '12345'; $meetings->save(); $registrant = $meeting->registrants()->create([ 'email' => 'registratn@domain.com', 'first_name' => 'Test', 'last_name' => 'Registrant' ]);
还有添加子对象的辅助函数
$meeting = $zoom->meeting->find('000000000'); $recurrence = $zoom->recurrence->create(['fields' => 'values']); $meeting->addRecurrence($recurrence); $meeting->save();
资源
我们涵盖了主要资源
Meetings
Panelists
Registrants
Users
Webinars
但某些资源也有子资源,例如
Recurrence
Occurrence
Settings (for meetings and webinars)
Tracking Fields
我们计划随着时间的推移添加更多资源/子资源
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 colin@macsi.co.uk 联系,而不是使用问题跟踪器。
鸣谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。