build zoom meeting sdk app

Skill

Reference skill for Zoom Meeting SDK. Use after routing to a meeting-embed workflow when implementing real Zoom meeting joins, platform-specific SDK behavior, auth and join flows, waiting room issues, or meeting bot patterns.

Files144
  • @skills/meeting-sdk/RUNBOOK.md
  • @skills/meeting-sdk/SKILL.md
  • @skills/meeting-sdk/android/RUNBOOK.md
  • @skills/meeting-sdk/android/SKILL.md
  • @skills/meeting-sdk/android/android.md
  • @skills/meeting-sdk/android/concepts/architecture.md
  • @skills/meeting-sdk/android/concepts/lifecycle-workflow.md
  • @skills/meeting-sdk/android/examples/join-start-pattern.md
  • @skills/meeting-sdk/android/references/android-reference-map.md
  • @skills/meeting-sdk/android/references/environment-variables.md
  • @skills/meeting-sdk/android/references/versioning-and-compatibility.md
  • @skills/meeting-sdk/android/scenarios/high-level-scenarios.md
  • @skills/meeting-sdk/android/troubleshooting/common-issues.md
  • @skills/meeting-sdk/electron/RUNBOOK.md
  • @skills/meeting-sdk/electron/SKILL.md
  • @skills/meeting-sdk/electron/concepts/high-level-scenarios.md
  • @skills/meeting-sdk/electron/concepts/lifecycle-workflow.md
  • @skills/meeting-sdk/electron/concepts/sdk-architecture-pattern.md
  • @skills/meeting-sdk/electron/examples/authentication-pattern.md
  • @skills/meeting-sdk/electron/examples/join-meeting-pattern.md
  • @skills/meeting-sdk/electron/examples/raw-data-pattern.md
  • @skills/meeting-sdk/electron/examples/setup-guide.md
  • @skills/meeting-sdk/electron/references/electron-reference.md
  • @skills/meeting-sdk/electron/references/module-map.md
  • @skills/meeting-sdk/electron/troubleshooting/common-issues.md
  • @skills/meeting-sdk/electron/troubleshooting/deprecated-and-contradictions.md
  • @skills/meeting-sdk/electron/troubleshooting/version-drift.md
  • @skills/meeting-sdk/ios/RUNBOOK.md
  • @skills/meeting-sdk/ios/SKILL.md
  • @skills/meeting-sdk/ios/concepts/architecture.md
  • @skills/meeting-sdk/ios/concepts/lifecycle-workflow.md
  • @skills/meeting-sdk/ios/examples/join-start-pattern.md
  • @skills/meeting-sdk/ios/ios.md
  • @skills/meeting-sdk/ios/references/environment-variables.md
  • @skills/meeting-sdk/ios/references/ios-reference-map.md
  • @skills/meeting-sdk/ios/references/versioning-and-compatibility.md
  • @skills/meeting-sdk/ios/scenarios/high-level-scenarios.md
  • @skills/meeting-sdk/ios/troubleshooting/common-issues.md
  • @skills/meeting-sdk/linux/RUNBOOK.md
  • @skills/meeting-sdk/linux/SKILL.md
  • @skills/meeting-sdk/linux/concepts/high-level-scenarios.md
  • @skills/meeting-sdk/linux/linux.md
  • @skills/meeting-sdk/linux/meeting-sdk-bot.md
  • @skills/meeting-sdk/linux/references/linux-reference.md
  • @skills/meeting-sdk/macos/RUNBOOK.md
  • @skills/meeting-sdk/macos/SKILL.md
  • @skills/meeting-sdk/macos/concepts/architecture.md
  • @skills/meeting-sdk/macos/concepts/lifecycle-workflow.md
  • @skills/meeting-sdk/macos/examples/join-start-pattern.md
  • @skills/meeting-sdk/macos/macos.md
  • @skills/meeting-sdk/macos/references/environment-variables.md
  • @skills/meeting-sdk/macos/references/macos-reference-map.md
  • @skills/meeting-sdk/macos/references/versioning-and-compatibility.md
  • @skills/meeting-sdk/macos/scenarios/high-level-scenarios.md
  • @skills/meeting-sdk/macos/troubleshooting/common-issues.md
  • @skills/meeting-sdk/react-native/RUNBOOK.md
  • @skills/meeting-sdk/react-native/SKILL.md
  • @skills/meeting-sdk/react-native/concepts/architecture.md
  • @skills/meeting-sdk/react-native/concepts/auth-and-token-model.md
  • @skills/meeting-sdk/react-native/concepts/high-level-scenarios.md
  • @skills/meeting-sdk/react-native/concepts/lifecycle-workflow.md
  • @skills/meeting-sdk/react-native/examples/join-meeting-pattern.md
  • @skills/meeting-sdk/react-native/examples/provider-hook-pattern.md
  • @skills/meeting-sdk/react-native/examples/setup-guide.md
  • @skills/meeting-sdk/react-native/examples/start-meeting-pattern.md
  • @skills/meeting-sdk/react-native/references/android-setup.md
  • @skills/meeting-sdk/react-native/references/ios-setup.md
  • @skills/meeting-sdk/react-native/references/native-bridge-notes.md
  • @skills/meeting-sdk/react-native/references/official-sources.md
  • @skills/meeting-sdk/react-native/references/wrapper-api.md
  • @skills/meeting-sdk/react-native/troubleshooting/common-issues.md
  • @skills/meeting-sdk/react-native/troubleshooting/deprecated-and-contradictions.md
  • @skills/meeting-sdk/react-native/troubleshooting/version-drift.md
  • @skills/meeting-sdk/references/ai-companion.md
  • @skills/meeting-sdk/references/android.md
  • @skills/meeting-sdk/references/authorization.md
  • @skills/meeting-sdk/references/bot-authentication.md
  • @skills/meeting-sdk/references/breakout-rooms.md
  • @skills/meeting-sdk/references/environment-variables.md
  • @skills/meeting-sdk/references/forum-top-questions.md
  • @skills/meeting-sdk/references/ios.md
  • @skills/meeting-sdk/references/macos.md
  • @skills/meeting-sdk/references/multiple-meetings.md
  • @skills/meeting-sdk/references/signature-playbook.md
  • @skills/meeting-sdk/references/triage-intake.md
  • @skills/meeting-sdk/references/troubleshooting.md
  • @skills/meeting-sdk/references/unreal.md
  • @skills/meeting-sdk/references/webinars.md
  • @skills/meeting-sdk/unreal/RUNBOOK.md
  • @skills/meeting-sdk/unreal/SKILL.md
  • @skills/meeting-sdk/unreal/concepts/architecture.md
  • @skills/meeting-sdk/unreal/concepts/lifecycle-workflow.md
  • @skills/meeting-sdk/unreal/examples/join-start-pattern.md
  • @skills/meeting-sdk/unreal/references/environment-variables.md
  • @skills/meeting-sdk/unreal/references/unreal-reference-map.md
  • @skills/meeting-sdk/unreal/references/versioning-and-compatibility.md
  • @skills/meeting-sdk/unreal/scenarios/high-level-scenarios.md
  • @skills/meeting-sdk/unreal/troubleshooting/common-issues.md
  • @skills/meeting-sdk/unreal/unreal.md
  • @skills/meeting-sdk/web/RUNBOOK.md
  • @skills/meeting-sdk/web/SKILL.md
  • @skills/meeting-sdk/web/client-view/RUNBOOK.md
  • @skills/meeting-sdk/web/client-view/SKILL.md
  • @skills/meeting-sdk/web/client-view/references/README.md
  • @skills/meeting-sdk/web/component-view/RUNBOOK.md
  • @skills/meeting-sdk/web/component-view/SKILL.md
  • @skills/meeting-sdk/web/component-view/references/README.md
  • @skills/meeting-sdk/web/concepts/browser-support.md
  • @skills/meeting-sdk/web/concepts/sharedarraybuffer.md
  • @skills/meeting-sdk/web/examples/client-view-basic.md
  • @skills/meeting-sdk/web/examples/component-view-react.md
  • @skills/meeting-sdk/web/references/component-view-breakout-rooms.md
  • @skills/meeting-sdk/web/references/component-view-ui-customization.md
  • @skills/meeting-sdk/web/references/sharedarraybuffer-gallery-view.md
  • @skills/meeting-sdk/web/references/web-performance-cpu.md
  • @skills/meeting-sdk/web/references/web-timeout-browser-restriction.md
  • @skills/meeting-sdk/web/references/web-tracking-id.md
  • @skills/meeting-sdk/web/references/web.md
  • @skills/meeting-sdk/web/troubleshooting/common-issues.md
  • @skills/meeting-sdk/web/troubleshooting/error-codes.md
  • @skills/meeting-sdk/windows/RUNBOOK.md
  • @skills/meeting-sdk/windows/SKILL.md
  • @skills/meeting-sdk/windows/concepts/custom-ui-architecture.md
  • @skills/meeting-sdk/windows/concepts/custom-ui-vs-raw-data.md
  • @skills/meeting-sdk/windows/concepts/sdk-architecture-pattern.md
  • @skills/meeting-sdk/windows/concepts/singleton-hierarchy.md
  • @skills/meeting-sdk/windows/examples/ai-companion.md
  • @skills/meeting-sdk/windows/examples/authentication-pattern.md
  • @skills/meeting-sdk/windows/examples/breakout-rooms.md
  • @skills/meeting-sdk/windows/examples/captions-transcription.md
  • @skills/meeting-sdk/windows/examples/chat.md
  • @skills/meeting-sdk/windows/examples/custom-ui-video-rendering.md
  • @skills/meeting-sdk/windows/examples/local-recording.md
  • @skills/meeting-sdk/windows/examples/raw-video-capture.md
  • @skills/meeting-sdk/windows/examples/send-raw-data.md
  • @skills/meeting-sdk/windows/examples/service-quality.md
  • @skills/meeting-sdk/windows/examples/share-raw-data-capture.md
  • @skills/meeting-sdk/windows/examples/video-advanced.md
  • @skills/meeting-sdk/windows/references/deployment.md
  • @skills/meeting-sdk/windows/references/interface-methods.md
  • @skills/meeting-sdk/windows/references/windows-reference.md
  • @skills/meeting-sdk/windows/troubleshooting/build-errors.md
  • @skills/meeting-sdk/windows/troubleshooting/common-issues.md
  • @skills/meeting-sdk/windows/troubleshooting/windows-message-loop.md

/build-zoom-meeting-sdk-app

Background reference for embedded Zoom meetings across web, mobile, desktop, and Linux bot environments. Prefer build-zoom-meeting-app or build-zoom-bot first, then route here for platform detail.

Zoom Meeting SDK

Embed the full Zoom meeting experience into web, mobile, desktop, and headless integrations.

Hard Routing Guardrail (Read First)

  • If the user asks to embed/join meetings inside their app UI, route to Meeting SDK implementation.
  • Do not switch to REST-only meeting link flow unless the user explicitly asks for meeting resource management or browser join_url links.
  • Meeting SDK join path requires SDK signature + SDK join call; REST join_url is not a Meeting SDK join payload.

Prerequisites

  • Zoom app with Meeting SDK credentials
  • SDK Key and Secret from Marketplace
  • Platform-specific development environment (Web, Android, iOS, macOS, Unreal, Electron, Linux, or Windows)
Need help with OAuth or signatures? See the zoom-oauth skill for authentication flows.
Need pre-join diagnostics on web? Use probe-sdk before Meeting SDK init/join to gate low-readiness devices/networks.
Start troubleshooting fast: Use the 5-Minute Runbook [blocked] before deep debugging.

Quick Start (Web - Client View via CDN)

html
<script src="https://source.zoom.us/3.1.6/lib/vendor/react.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/react-dom.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/redux.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/redux-thunk.min.js"></script>
<script src="https://source.zoom.us/3.1.6/lib/vendor/lodash.min.js"></script>
<script src="https://source.zoom.us/3.1.6/zoom-meeting-3.1.6.min.js"></script>

<script>
// CDN provides ZoomMtg (Client View - full page)
// For ZoomMtgEmbedded (Component View), use npm instead

ZoomMtg.preLoadWasm();
ZoomMtg.prepareWebSDK();

ZoomMtg.init({
  leaveUrl: window.location.href,
  patchJsMedia: true,
  disableCORP: !window.crossOriginIsolated,
  success: function() {
    ZoomMtg.join({
      sdkKey: 'YOUR_SDK_KEY',
      signature: 'YOUR_SIGNATURE',  // Generate server-side!
      meetingNumber: 'MEETING_NUMBER',
      userName: 'User Name',
      passWord: '',  // Note: camelCase with capital W
      success: function(res) { console.log('Joined'); },
      error: function(err) { console.error(err); }
    });
  },
  error: function(err) { console.error(err); }
});
</script>

Critical Notes (Web)

1. CDN vs npm - Different APIs!

DistributionGlobal ObjectView TypeAPI Style
CDN (zoom-meeting-{ver}.min.js)ZoomMtgClient View (full-page)Callbacks
npm (@zoom/meetingsdk)ZoomMtgEmbeddedComponent View (embeddable)Promises

2. Backend Required for Production

Never expose SDK Secret in client code. Generate signatures server-side:
javascript
// server.js (Node.js example)
const KJUR = require('jsrsasign');

app.post('/api/signature', (req, res) => {
  const { meetingNumber, role } = req.body;
  const iat = Math.floor(Date.now() / 1000) - 30;
  const exp = iat + 60 * 60 * 2;
  
  const header = { alg: 'HS256', typ: 'JWT' };
  const payload = {
    sdkKey: process.env.ZOOM_SDK_KEY,
    mn: String(meetingNumber).replace(/\D/g, ''),
    role: parseInt(role, 10),
    iat, exp, tokenExp: exp
  };
  
  const signature = KJUR.jws.JWS.sign('HS256',
    JSON.stringify(header),
    JSON.stringify(payload),
    process.env.ZOOM_SDK_SECRET
  );
  
  res.json({ signature, sdkKey: process.env.ZOOM_SDK_KEY });
});

3. CSS Conflicts - Avoid Global Resets

Global * { margin: 0; } breaks Zoom's UI. Scope your styles:
css
/* BAD */
* { margin: 0; padding: 0; }

/* GOOD */
.your-app, .your-app * { box-sizing: border-box; }

4. Client View Toolbar Cropping Fix

If toolbar falls off screen, scale down the Zoom UI:
css
#zmmtg-root {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  /* Critical for SPAs (React/Next/etc): ensure Zoom UI isn't behind your app shell/overlays. */
  z-index: 9999 !important;
  transform: scale(0.95) !important;
  transform-origin: top center !important;
}

5. Hide Your App When Meeting Starts

Client View takes over full page. Hide your UI:
javascript
// In ZoomMtg.init success callback:
document.documentElement.classList.add('meeting-active');
document.body.classList.add('meeting-active');
css
body.meeting-active .your-app { display: none !important; }
body.meeting-active { background: #000 !important; }

UI Options (Web)

Meeting SDK provides Zoom's UI with customization options:
ViewDescription
Component ViewExtractable, customizable UI - embed meeting in a div
Client ViewFull-page Zoom UI experience
Note: Unlike Video SDK where you build the UI from scratch, Meeting SDK uses Zoom's UI as the base with customization on top.

Key Concepts

ConceptDescription
SDK Key/SecretCredentials from Marketplace
SignatureJWT signed with SDK Secret
Component ViewExtractable, customizable UI (Web)
Client ViewFull-page Zoom UI (Web)

Detailed References

Platform Guides

  • android/SKILL.md [blocked] - Android SDK (default/custom UI, join/start/auth lifecycle, mobile integration)
  • android/references/android-reference-map.md [blocked] - Android API surface map and drift watchpoints
  • ios/SKILL.md [blocked] - iOS SDK (default/custom UI, join/start/auth lifecycle, mobile integration)
  • ios/references/ios-reference-map.md [blocked] - iOS API surface map and drift watchpoints
  • macos/SKILL.md [blocked] - macOS SDK (desktop default/custom UI, service controllers, host flows)
  • macos/references/macos-reference-map.md [blocked] - macOS API surface map and drift watchpoints
  • unreal/SKILL.md [blocked] - Unreal Engine wrapper (C++/Blueprint wrapper behavior and SDK mapping)
  • unreal/references/unreal-reference-map.md [blocked] - Unreal wrapper reference map and version-lag notes
  • references/android.md [blocked] - Android pointer doc for fast routing from broad Meeting SDK queries
  • references/ios.md [blocked] - iOS pointer doc for fast routing from broad Meeting SDK queries
  • references/macos.md [blocked] - macOS pointer doc for fast routing from broad Meeting SDK queries
  • references/unreal.md [blocked] - Unreal pointer doc for fast routing from broad Meeting SDK queries
  • linux/SKILL.md [blocked] - Linux SDK headless bot skill entrypoint
  • linux/linux.md [blocked] - Linux SDK (C++ headless bots, raw media access)
  • linux/references/linux-reference.md [blocked] - Linux dependencies, Docker, troubleshooting
  • react-native/SKILL.md [blocked] - React Native SDK (iOS/Android wrapper, join/start flows, bridge setup)
  • react-native/SKILL.md [blocked] - React Native complete navigation
  • electron/SKILL.md [blocked] - Electron SDK (desktop wrapper, auth/join flows, module controllers, raw data)
  • electron/SKILL.md [blocked] - Electron complete navigation
  • windows/SKILL.md [blocked] - Windows SDK (C++ desktop applications, raw media access)
  • windows/references/windows-reference.md [blocked] - Windows dependencies, Visual Studio setup, troubleshooting
  • web/references/web.md [blocked] - Web SDK (Component + Client View)
  • web/references/web-tracking-id.md [blocked] - Tracking ID configuration

Features

  • references/authorization.md [blocked] - SDK JWT generation
  • references/bot-authentication.md [blocked] - ZAK vs OBF vs JWT tokens for bots
  • references/breakout-rooms.md [blocked] - Programmatic breakout room management
  • references/ai-companion.md [blocked] - AI Companion controls in meetings
  • references/webinars.md [blocked] - Webinar SDK features
  • references/forum-top-questions.md [blocked] - Common forum question patterns (what to cover)
  • references/triage-intake.md [blocked] - What to ask first (turn vague reports into answers)
  • references/signature-playbook.md [blocked] - Signature/root-cause playbook
  • references/multiple-meetings.md [blocked] - Joining multiple meetings / multiple instances
  • references/troubleshooting.md [blocked] - Common issues and solutions

Sample Repositories

Official (by Zoom)

Resources

Environment Variables

  • See references/environment-variables.md [blocked] for standardized .env keys and where to find each value.
build-zoom-meeting-sdk-app — Kortix Marketplace | Kortix