iclimber/laravel-zoom

Laravel Zoom 包

1.0.24 2020-04-02 15:48 UTC

README

Latest Version on Packagist Build Status StyleCI Total Downloads

用于管理 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)。有关更多信息,请参阅 许可文件