MacsiDigital / laravel-zoom by MacsiDigital

Laravel Zoom package
285,130
254
18
Package Data
Maintainer Username: MacsiDigital
Maintainer Contact: colin@macsi.co.uk (Colin Hall)
Package Create Date: 2019-06-24
Package Last Update: 2024-03-01
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-03-27 03:25:55
Package Statistics
Total Downloads: 285,130
Monthly Downloads: 5,464
Daily Downloads: 247
Total Stars: 254
Total Watchers: 18
Total Forks: 131
Total Open Issues: 33

Laravel package for Zoom video conferencing

Latest Version on Packagist Build Status StyleCI Total Downloads

Package to manage the Zoom API in Laravel

Installation

This package is for Laravel versions > 6. It may work on < 6 but its not something we have tried.

You can install the package via composer:

composer require macsidigital/laravel-zoom

Configuration file

Publish the configuration file

php artisan vendor:publish --provider="MacsiDigital\Zoom\Providers\ZoomServiceProvider"

This will create a zoom/config.php within your config directory, where you add value for api_key and api_secret.

Usage

Everything has been setup to be similar to Laravel syntax.

Unfortunately the Zoom API is not very uniform and is a bit all over the place, so at the minute there are a number of hacks to be able to get this to work. We will refactor and improve this.

We use relationships so you will need to check the Zoom API, for example to get a list of meetings or webinars you need to pass in a user id. WE use a little bit of relationship magic to acheive this in a more laravel type way.

So to get a list of meetings

	$zoom = new \MacsiDigital\Zoom\Zoom;
	$meetings = $zoom->user->find('test@domain.com')->meetings()->all();

Find all

The find all function returns a Laravel Collection so you can use all the Laravel Collection magic

	$zoom = new \MacsiDigital\Zoom\Zoom;
	$users = $zoom->user->all();

Filtered

There are very few ocassions in the API where you can filter the results, but where you can you can use the where function. Again check the API documentation for where you can add a query to the request. To action you would do like so

    $zoom = new \MacsiDigital\Zoom\Zoom;
    $thing = $zoom->thing->where('Name', '=', 'Test Name')->get();

You can also just passs the name and value if it is to equal

    $zoom = new \MacsiDigital\Zoom\Zoom;
    $thing = $zoom->thing->where('Name', 'Test Name')->get();

To only get a single item use the 'first' method

    $zoom = new \MacsiDigital\Zoom\Zoom;
    $thing = $zoom->thing->where('Name', 'Test Name')->first();

Find by ID

Just like Laravel we can use the 'find' method to return a single matched result on the ID. For users/registrants/panelists you can also use the email as well as the ID.

	$zoom = new \MacsiDigital\Zoom\Zoom;
	$meeting = $zoom->meeting->find('000000000');

Creating Items

We can create and update records using the save function, below is the full save script for a creation.

	$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'
    ]);
    $registrant = $meeting->registrants()->create([
    	'email' => 'registratn@domain.com',
    	'first_name' => 'Test',
    	'last_name' => 'Registrant'
    ]);

There are also helper functions for adding sub objects

    $meeting = $zoom->meeting->find('000000000');
    $recurrance = $zoom->recurrance->create(['fields' => 'values']);
    $meeting->addRecurrance($recurrance);
    $meeting->save();

RESOURCES

We cover the main resources

Meetings
Panelists
Registrants
Users
Webinars

But some also have sub cresources, like

Recurrance
Occurance
Settings (for meetings and webinars)
Tracking Fields

We aim to add additional resources/sub-resources over time

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email colin@macsi.co.uk instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.