hsc / zoomkit
ZoomKit makes it easy to consume Zoom APIs from your Laravel application
Requires
- php: ^8.0
- ext-curl: *
- nesbot/carbon: ^2.0
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
listArchivedFiles()
- List archived filesgetMeetingArchivedFiles()
- Get meeting archived filesdeleteMeetingArchivedFiles()
- Delete meeting archived files
CloudRecordings
class
listAllRecordings()
- List all recordingsgetMeetingRecordings()
- Get meeting recordingsdeleteMeetingRecordings()
- Delete meeting recordingsdeleteMeetingRecordingFile()
- Delete meeting recording filerecoverMeetingRecordings()
- Recover meeting recordingsrecoverSingleRecording()
- Recover single recordinggetMeetingRecordingSettings()
- Get meeting recording settingsupdateMeetingRecordingSettings()
- Update meeting recording settingslistRecordingRegistrants()
- List recording registrantscreateRecordingRegistrant()
- Create recording registrantupdateRegistrantsStatus()
- Update registrants statusgetRegistrationQuestions()
- Get registration questionsupdateRegistrationQuestions()
- Update registration questionslistAccountRecordings()
- List account recordings
Contacts
class
searchCompanyContacts()
- Search company contactslistUserContacts()
- List user contactsgetUserContactDetails()
- Get user contact details
Dashboards
class
listMeetings()
- List meetingsgetMeetingDetails()
- Get meeting detailslistMeetingParticipants()
- List meeting participantsgetMeetingParticipantQoS()
- Get meeting participant QoSlistMeetingParticipantsQoS()
- List meeting participants QoSgetMeetingSharingRecordingDetails()
- Get sharing/recording detailslistWebinars()
- List webinarsgetWebinarDetails()
- Get webinar detailsgetWebinarParticipants()
- Get webinar participantsgetWebinarParticipantQoS()
- Get webinar participant QoSlistWebinarParticipantsQoS()
- List webinar participant QoSgetWebinarSharingRecordingDetails()
- Get sharing/recording detailslistZoomRooms()
- List Zoom RoomsgetZoomRoomsDetails()
- Get Zoom Rooms detailsgetCRCPortUsage()
- Get CRC port usagegetChatMetrics()
- Get chat metricslistMeetingsClientFeedback()
- List Zoom meetings client feedbackgetTop25IssuesOfZoomRooms()
- Get top 25 issues of Zoom RoomsgetTop25ZoomRoomsWithIssues()
- Get top 25 Zoom Rooms with issuesgetIssuesOfZoomRooms()
- Get issues of Zoom RoomsgetMeetingQualityScores()
- Get meeting quality scoresgetMeetingsClientFeedback()
- Get zoom meetings client feedbacklistClientMeetingSatisfaction()
- List client meeting satisfactiongetPostMeetingFeedback()
- Get post meeting feedbackgetPostWebinarFeedback()
- Get post webinar feedback
Devices
class
listH323SIPDevices()
- List H.323/SIP devicescreateH323SIPDevice()
- Create a H.323/SIP deviceupdateH323SIPDevice()
- Update a H.323/SIP devicedeleteH323SIPDevice()
- Delete a H.323/SIP device
Meetings
class
listMeetings()
- List meetingsgetMeeting()
- Get a meetingcreateMeeting()
- Create a meetingupdateMeeting()
- Update a meetingdeleteMeeting()
- Delete a meetingupdateMeetingStatus()
- Update meeting statuslistMeetingRegistrants()
- List meeting registrantsaddMeetingRegistrant()
- Add meeting registrantdeleteMeetingRegistrant()
- Delete meeting registrantgetMeetingRegistrant()
- Get meeting registrantupdateRegistrantStatus()
- Update registrant's statusgetPastMeetingDetails()
- Get past meeting detailsgetPastMeetingParticipants()
- Get past meeting participantslistEndedMeetingInstance()
- List ended meeting instancelistMeetingPolls()
- List meeting pollscreateMeetingPoll()
- Create a meeting pollgetMeetingPoll()
- Get a meeting pollupdateMeetingPoll()
- Update a meeting polldeleteMeetingPoll()
- Delete a meeting polllistRegistrationQuestions()
- List registration questionsupdateRegistrationQuestions()
- Update registration questionsgetMeetingInvitation()
- Get meeting invitationupdateLiveStream()
- Update a live streamgetLiveStreamDetails()
- Get live stream detailsupdateLiveStreamStatus()
- Update Live Stream StatuslistPastMeetingPollResults()
- List past meeting's poll resultsperformBatchRegistration()
- Perform batch registrationuseInMeetingRecordingControl()
- Use in-Meeting recording controlperformBatchPollCreation()
- Perform batch poll creationlistMeetingTemplates()
- List meeting templatescreateMeetingInviteLinks()
- Create meeting's invite links
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 ofZoomKitMeetings::createMeeting()
specific to Instant MeetingscreateScheduledMeeting()
- Simplified call ofZoomKitMeetings::createMeeting()
specific to Scheduled MeetingsendMeeting()
- Simplified call ofZoomKitMeeting::updateMeetingStatus()
to simply end a meeting.
PAC
class
Zoom's smallest API section (tied with the Zoom Rooms Devices section) with only one function.
listUserPACAccounts()
- List a user's PAC accounts
Reports
class
getDailyUsageReport()
- Get daily usage reportgetActiveInactiveHostReports()
- Get active/inactive host reports
RoomsAccount
class
getZoomRoomAccountProfile()
- Get Zoom Room account profileupdateZoomRoomAccountProfile()
- Update Zoom Room account profilegetZoomRoomAccountSettings()
- Get Zoom Room account settingsupdateZoomRoomAccountSettings()
- Update Zoom Room account settings
RoomsDevices
class
changeZoomRoomsAppVersion()
- Change Zoom Rooms app version
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.