PHPackages                             pkc/zoom-meeting - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. pkc/zoom-meeting

ActiveLibrary[API Development](/categories/api)

pkc/zoom-meeting
================

Zoom Meeting Integration for Laravel

v1.0.0(4mo ago)09MITPHPPHP ^8.2

Since Jan 7Pushed 4mo agoCompare

[ Source](https://github.com/laradevsumon/zoom-meeting)[ Packagist](https://packagist.org/packages/pkc/zoom-meeting)[ RSS](/packages/pkc-zoom-meeting/feed)WikiDiscussions dev Synced 1mo ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

Zoom Meeting Integration for Laravel
====================================

[](#zoom-meeting-integration-for-laravel)

A comprehensive Laravel package that provides seamless integration with the Zoom Meeting API using Server-to-Server OAuth authentication.

Overview
--------

[](#overview)

This package simplifies the integration of Zoom's video conferencing capabilities into your Laravel application, enabling you to programmatically create and manage Zoom meetings through a clean, intuitive API.

Requirements
------------

[](#requirements)

- PHP 8.2 or higher
- Laravel 10.x or 11.x
- Composer
- Active Zoom account with Server-to-Server OAuth app credentials

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require pkc/zoom-meeting
```

Configuration
-------------

[](#configuration)

### Publishing Configuration Files

[](#publishing-configuration-files)

Publish the package configuration file to your application:

```
php artisan vendor:publish --tag="zoom-config"
```

This will create a `config/zoom.php` file in your application.

### Environment Variables

[](#environment-variables)

Add your Zoom Server-to-Server OAuth credentials to your `.env` file:

```
ZOOM_ACCOUNT_ID=your_account_id
ZOOM_CLIENT_ID=your_client_id
ZOOM_CLIENT_SECRET=your_client_secret
```

#### Obtaining Zoom Credentials

[](#obtaining-zoom-credentials)

1. Navigate to the [Zoom App Marketplace](https://marketplace.zoom.us/)
2. Create a new Server-to-Server OAuth app
3. Copy your Account ID, Client ID, and Client Secret
4. Configure the appropriate scopes for your application

Usage
-----

[](#usage)

### Basic Implementation

[](#basic-implementation)

The package provides a `ZoomService` class that can be resolved from Laravel's service container:

```
use Pkc\ZoomMeeting\ZoomService;

$zoomService = app(ZoomService::class);
```

### Creating a Meeting

[](#creating-a-meeting)

Create a new Zoom meeting by calling the `createMeeting` method with your desired parameters:

```
$meeting = $zoomService->createMeeting([
    'topic' => 'Medical Consultation',
    'start_time' => '2026-01-10T10:00:00Z',
    'duration' => 30,
    'timezone' => 'UTC',
]);
```

### Accessing Meeting Details

[](#accessing-meeting-details)

The `createMeeting` method returns an array containing the Zoom API response with the following key fields:

```
$meetingId = $meeting['id'];
$joinUrl = $meeting['join_url'];
$startUrl = $meeting['start_url'];
$password = $meeting['password'] ?? null;
```

### Response Structure

[](#response-structure)

FieldTypeDescription`id`integerUnique identifier for the meeting`join_url`stringURL for participants to join the meeting`start_url`stringURL for the host to start the meeting`password`stringMeeting password (if enabled)`topic`stringMeeting topic`start_time`stringScheduled start time in ISO 8601 format`duration`integerMeeting duration in minutes`timezone`stringMeeting timezone### Advanced Usage Example

[](#advanced-usage-example)

```
use Pkc\ZoomMeeting\ZoomService;

class MeetingController extends Controller
{
    public function __construct(
        protected ZoomService $zoomService
    ) {}

    public function store(Request $request)
    {
        $validated = $request->validate([
            'topic' => 'required|string|max:255',
            'start_time' => 'required|date',
            'duration' => 'required|integer|min:1',
        ]);

        try {
            $meeting = $this->zoomService->createMeeting([
                'topic' => $validated['topic'],
                'start_time' => $validated['start_time'],
                'duration' => $validated['duration'],
                'timezone' => config('app.timezone'),
            ]);

            return response()->json([
                'success' => true,
                'meeting' => $meeting,
            ]);
        } catch (\Exception $e) {
            return response()->json([
                'success' => false,
                'message' => 'Failed to create meeting',
            ], 500);
        }
    }
}
```

API Reference
-------------

[](#api-reference)

### ZoomService::createMeeting(array $data)

[](#zoomservicecreatemeetingarray-data)

Creates a new Zoom meeting.

**Parameters:**

- `topic` (string, required): The meeting topic
- `start_time` (string, required): Meeting start time in ISO 8601 format
- `duration` (integer, required): Meeting duration in minutes
- `timezone` (string, optional): Timezone identifier (default: UTC)

**Returns:** Array containing the Zoom API response

**Throws:** `Exception` on API errors

Security Considerations
-----------------------

[](#security-considerations)

- Never commit your `.env` file or expose your Zoom credentials
- Store credentials securely using Laravel's encryption if needed
- Implement proper authorization checks before creating meetings
- Validate and sanitize all user inputs

Troubleshooting
---------------

[](#troubleshooting)

### Common Issues

[](#common-issues)

**Authentication Errors:**

- Verify your credentials are correctly set in `.env`
- Ensure your Server-to-Server OAuth app has the necessary scopes
- Check that your app is activated in the Zoom Marketplace

**API Rate Limits:**

- Zoom enforces rate limits on API requests
- Implement appropriate error handling and retry logic

Support
-------

[](#support)

For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/pkc/zoom-meeting).

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT License](LICENSE.md).

Credits
-------

[](#credits)

Developed and maintained by PKC.

---

**Version:** 1.0.0
**Last Updated:** January 2026

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance77

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

125d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c94a67e75385ed3f69d5c9dcf6f3814915af9184cda0cfd491e5d23aaeed3775?d=identicon)[pkc](/maintainers/pkc)

---

Top Contributors

[![laradevsumon](https://avatars.githubusercontent.com/u/174681081?v=4)](https://github.com/laradevsumon "laradevsumon (4 commits)")

### Embed Badge

![Health badge](/badges/pkc-zoom-meeting/health.svg)

```
[![Health](https://phpackages.com/badges/pkc-zoom-meeting/health.svg)](https://phpackages.com/packages/pkc-zoom-meeting)
```

###  Alternatives

[skagarwal/google-places-api

Google Places Api

1913.0M8](/packages/skagarwal-google-places-api)[dcblogdev/laravel-microsoft-graph

A Laravel Microsoft Graph API (Office365) package

168285.5k1](/packages/dcblogdev-laravel-microsoft-graph)[vluzrmos/slack-api

Wrapper for Slack.com WEB API.

102589.1k3](/packages/vluzrmos-slack-api)[smodav/mpesa

M-Pesa API implementation

16363.7k1](/packages/smodav-mpesa)[jasara/php-amzn-selling-partner-api

A fluent interface for Amazon's Selling Partner API in PHP

1344.8k1](/packages/jasara-php-amzn-selling-partner-api)[grantholle/powerschool-api

A Laravel package to make interacting with PowerSchool less painful.

1715.6k1](/packages/grantholle-powerschool-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
