hsc/zoomkit

ZoomKit makes it easy to consume Zoom APIs from your Laravel application

v0.10 2021-11-20 15:12 UTC

This package is auto-updated.

Last update: 2024-05-20 20:41:10 UTC


README

Consume Zoom Meeting APIs easily from a Laravel application. Licensed under MIT.

Calling an API

You must have ZOOM_KEY and ZOOM_SECRET entries in your .env file. You can get these from the Zoom developer center as the JWT app type.

Once these environment variables have been added, the APIs are modeled off of Zoom's API documentation. For example, if you wanted to use the API at Zoom's Dashboards > List Meetings, you would do the following:

use HSC\ZoomKit\Dashboards;

class MyClass {
    function listMeetings() {
        $result = Dashboards::listMeetings();
        dump($result);
    }
}

In the above example, Dashboards is the class containing all the APIs within the Dashboards section of the documentation. All functions are named similarly to their documentation titles, with the "List meetings" article being listMeetings().

Some functions support additional arguments, which is recorded in PHPdoc blocks. Dates use Carbon types, similar to other Laravel dates.

A very customized call of the same listMeetings() function might look like:

use HSC\ZoomKit\Dashboards;

class MyClass {
    function list_meetings() {
        $from = Carbon::now()->subMonth();
        $to = Carbon::now();
        
        $result = Dashboards::listMeetings(
            type: 'pastOne',
            from: $from,
            to: $to,
            page_size: 300,
        );
        
        dump($result);
    }
}

Currently implemented functions

Archiving class

CloudRecordings class

Contacts class

Dashboards class

Devices class

Meetings class

MeetingsExtras class

Expands the ZoomKitMeetings class with ZoomKit-exclusive API abstractions that simplify the use of some of Zoom's more complex APIs.

  • createInstantMeeting() - Simplified call of ZoomKitMeetings::createMeeting() specific to Instant Meetings
  • createScheduledMeeting() - Simplified call of ZoomKitMeetings::createMeeting() specific to Scheduled Meetings
  • endMeeting() - Simplified call of ZoomKitMeeting::updateMeetingStatus() to simply end a meeting.

PAC class

Zoom's smallest API section (tied with the Zoom Rooms Devices section) with only one function.

Reports class

RoomsAccount class

RoomsDevices class

Zoom API Sections

See the Zoom API documentation for more information.

The goal is to eventually support most, if not all, of Zoom's APIs for easy consumption. Currently, only the API sections marked as partially or fully implemented / complete are present.

  • Accounts
  • Archiving (complete)
  • Billing
  • Chat Channels
  • Chat Channels (Account-level)
  • Chat Messages
  • Chatbot Messages
  • Contacts (complete)
  • Cloud Recording (complete)
  • Dashboards (complete)
  • Devices (complete)
  • Groups
  • IM Groups
  • Meetings (complete)
  • PAC (complete)
  • Reports
  • Roles
  • SIP Connected Audio
  • SIP Phone
  • Tracking Field
  • TSP
  • Users
  • Webinars
  • Zoom Rooms
  • Zoom Rooms Account (complete)
  • Zoom Rooms Location
  • Zoom Rooms Devices (complete)

I hope to eventually complete all the Zoom API sections. I will not be implementing deprecated functions (such as the IM Chat section of APIs). If APIs are deprecated after I've already implemented them, they will remain implemented until they are shut down.