zoom-apps-sdk について
Zoom クライアント内で動作する Web アプリを開発するための JavaScript SDK です。会議情報、アプリ間通信、クライアント内 OAuth、共有状態、没入型動画レイアウトの API を提供します。
主な機能
- 01会議・ユーザー・参加者のコンテキスト取得
- 02クライアント内 OAuth 認証
- 03会議操作とアプリ間メッセージング
- 04参加者間でのアプリ状態共有
- 05Layers API によるカスタム動画レイアウト
- 06会議や参加者イベントの監視
活用シーン
- 01Zoom の会議やウェビナー内アプリの構築
- 02Zoom クライアントでの会議・ユーザー情報の取得
- 03会議参加者向けの共有状態体験の作成
- 04没入型動画レイアウトやカメラオーバーレイの制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ anthropics/ knowledge-work-plugins --skill zoom-apps-sdkインストール後、Claude Code で/zoom-apps-sdkを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
RUNBOOK.mdconcepts/architecture.mdmeeting-sdk-vs-zoom-apps.mdrunning-contexts.mdsecurity.mdexamples/app-communication.mdbreakout-rooms.mdcollaborate-mode.mdguest-mode.mdin-client-oauth.mdlayers-camera.mdlayers-immersive.mdquick-start.mdreferences/apis.mdenvironment-variables.mdevents.mdlayers-api.mdoauth.mdzmail-sdk.mdtroubleshooting/common-issues.mddebugging.mdforum-top-questions.mdmigration.md詳細
Zoom Apps SDK
Zoom クライアント内で実行するウェブアプリの背景情報です。まず choose-zoom-approach を選び、その後、Layers API、Collaborate Mode、クライアント内 OAuth、ランタイムの制約を調べる際にこちらを参照してください。
Zoom Apps SDK
Zoom クライアント内で実行するウェブアプリを構築します。ミーティング、ウェビナー、メインクライアント、Zoom Phone に対応します。
公式ドキュメント:https://developers.zoom.us/docs/zoom-apps/ SDK リファレンス:https://appssdk.zoom.us/ NPM パッケージ:https://www.npmjs.com/package/@zoom/appssdk
クイックリンク
Zoom Apps を初めて利用する場合は、次の順に進めてください。
- アーキテクチャ - フロントエンド/バックエンドのパターン、埋め込みブラウザー、ディープリンク
- クイックスタート - Express + SDK を使った、完全に動作するアプリ
- 実行コンテキスト - アプリの実行場所(inMeeting、inMainClient など)
- Zoom Apps と Meeting SDK の比較 - アプリの種類を混同しないようにしましょう
- クライアント内 OAuth - PKCE によるシームレスな認可
- API リファレンス - 100 以上の SDK メソッド
- 統合インデックス - このファイルの下のセクションを参照してください
- 5 分間の実行手順 - 詳細なデバッグの前に行う事前確認
リファレンス:
- API リファレンス - カテゴリー別の全 SDK メソッド
- イベントリファレンス - 全 SDK イベントリスナー
- Layers API - イマーシブ表示とカメラモードのレンダリング
- OAuth リファレンス - Zoom Apps の OAuth フロー
- Zoom Mail - メールプラグインとの統合
問題が発生した場合:
- Zoom でアプリが読み込まれない → 下記のドメイン許可リストを確認してください
- SDK エラー → よくある問題
- ローカル開発環境のセットアップ → デバッグガイド
- バージョンアップグレード → 移行ガイド
- フォーラムをもとにした FAQ → フォーラムでよくある質問
イマーシブなエクスペリエンスを構築する場合:
- Layers イマーシブモード - カスタムビデオレイアウト
- カメラモード - バーチャルカメラのオーバーレイ
OAuth でお困りですか? 認証フローについては、zoom-oauth スキルを参照してください。
SDK の概要
Zoom Apps SDK(@zoom/appssdk)は、Zoom の埋め込みブラウザーで実行するウェブアプリ向けの JavaScript API を提供します。
- コンテキスト API - ミーティング、ユーザー、参加者の情報を取得します
- ミーティング操作 - アプリの共有、参加者の招待、URL のオープン
- 認可 - PKCE によるクライアント内 OAuth(ブラウザーへのリダイレクトは不要)
- Layers API - イマーシブなビデオレイアウトとカメラモードのオーバーレイ
- Collaborate Mode - 参加者間でアプリの状態を共有します
- アプリケーション間通信 - アプリインスタンス間でメッセージを送受信します(メインクライアント <-> ミーティング)
- メディアコントロール - バーチャル背景、カメラの一覧表示、録画制御
- UI コントロール - アプリの展開、通知、ポップアウト
- イベント - ミーティングの状態、参加者、共有などに対応します
前提条件
- Marketplace で 「Zoom App」 タイプとして設定された Zoom アプリ
- Zoom Apps スコープを持つ OAuth 認証情報(Client ID + Secret)
- ウェブアプリケーション(Node.js + Express を推奨)
- Marketplace のドメイン許可リストでドメインが許可されていること
- ローカル開発用の ngrok または HTTPS トンネル
- Node.js 18+(バックエンドサーバー用)
クイックスタート
オプション A:NPM(フレームワーク向けに推奨)
npm install @zoom/appssdk
import zoomSdk from '@zoom/appssdk';
async function init() {
try {
const configResponse = await zoomSdk.config({
capabilities: [
'shareApp',
'getMeetingContext',
'getUserContext',
'openUrl'
],
version: '0.16'
});
console.log('Running context:', configResponse.runningContext);
// 'inMeeting' | 'inMainClient' | 'inWebinar' | 'inImmersive' | ...
const context = await zoomSdk.getMeetingContext();
console.log('Meeting ID:', context.meetingID);
} catch (error) {
console.error('Not running inside Zoom:', error.message);
showDemoMode();
}
}
オプション B:CDN(Vanilla JS)
<script src="https://appssdk.zoom.us/sdk.js"></script>
<script>
// CRITICAL: Do NOT declare "let zoomSdk" - the SDK defines window.zoomSdk globally
// Using "let zoomSdk = ..." causes: SyntaxError: redeclaration of non-configurable global property
let sdk = window.zoomSdk; // Use a different variable name
async function init() {
try {
const configResponse = await sdk.config({
capabilities: ['shareApp', 'getMeetingContext', 'getUserContext'],
version: '0.16'
});
console.log('Running context:', configResponse.runningContext);
} catch (error) {
console.error('Not running inside Zoom:', error.message);
showDemoMode();
}
}
function showDemoMode() {
document.body.innerHTML = '<h1>Preview Mode</h1><p>Open this app inside Zoom to use.</p>';
}
document.addEventListener('DOMContentLoaded', () => {
init();
setTimeout(() => { if (!sdk) showDemoMode(); }, 3000);
});
</script>
重要:グローバル変数の競合
CDN スクリプトは window.zoomSdk をグローバルに定義します。再宣言しないでください。
// WRONG - causes SyntaxError in Zoom's embedded browser
let zoomSdk = null;
zoomSdk = window.zoomSdk;
// CORRECT - use different variable name
let sdk = window.zoomSdk;
// ALSO CORRECT - NPM import (no conflict)
import zoomSdk from '@zoom/appssdk';
これは CDN を使う方法にのみ当てはまります。NPM のインポートではモジュールスコープの変数が作成されるため、競合しません。
ブラウザプレビュー/デモモード
SDK は Zoom クライアント内でのみ機能します。通常のブラウザからアクセスした場合:
window.zoomSdkは存在しますが、sdk.config()はエラーをスローします- 常に try/catch を実装し、フォールバック UI を用意してください
- SDK が応答しなくなる場合に備えて、タイムアウト(3 秒)を設定してください
URL の許可リスト登録(必須)
ドメインが許可リストに登録されていないと、アプリは Zoom で読み込まれません。
- Zoom Marketplace に移動します
- アプリを開き、Feature タブを選択します
- Zoom App の下にある Add Allow List を見つけます
- ドメインを追加します(例:本番環境では
yourdomain.com、開発環境ではxxxxx.ngrok.io)
登録しない場合、Zoom クライアントにはエラーメッセージのない空白のパネルが表示されます。
OAuth スコープ(必須)
機能を利用するには、Marketplace で対応する OAuth スコープを有効にする必要があります。
| 機能 | 必要なスコープ |
|---|---|
getMeetingContext | zoomapp:inmeeting |
getUserContext | zoomapp:inmeeting |
shareApp | zoomapp:inmeeting |
openUrl | zoomapp:inmeeting |
sendAppInvitation | zoomapp:inmeeting |
runRenderingContext | zoomapp:inmeeting |
authorize | zoomapp:inmeeting |
getMeetingParticipants | zoomapp:inmeeting |
スコープを追加するには: Marketplace -> アプリ -> Scopes タブ -> 必要なスコープを追加します。
スコープが不足している場合、機能は何も通知せずに失敗するか、エラーをスローします。新しいスコープを追加した場合、ユーザーは再認証する必要があります。
実行コンテキスト
アプリは Zoom 内のさまざまな画面で実行されます。configResponse.runningContext で実行場所を確認できます。
| コンテキスト | 画面 | 説明 |
|---|---|---|
inMeeting | ミーティングのサイドバー | 最も一般的です。すべてのミーティング API を利用できます |
inMainClient | メインクライアントのパネル | ホームタブです。ミーティングコンテキスト API は利用できません |
inWebinar | ウェビナーのサイドバー | ホスト/パネリスト向けです。ミーティング API とウェビナー API を利用できます |
inImmersive | Layers API | フルスクリーンのカスタムレンダリングです |
inCamera | カメラモード | 仮想カメラのオーバーレイです |
inCollaborate | コラボレーションモード | 共有状態のコンテキストです |
inPhone | Zoom Phone | 電話アプリです |
inChat | Team Chat | チャットのサイドバーです |
コンテキストごとの動作と API については、実行コンテキスト を参照してください。
SDK 初期化パターン
すべての Zoom App は config() から開始します。
import zoomSdk from '@zoom/appssdk';
const configResponse = await zoomSdk.config({
capabilities: [
// List ALL APIs you will use
'getMeetingContext',
'getUserContext',
'shareApp',
'openUrl',
'authorize',
'onAuthorized'
],
version: '0.16'
});
// configResponse contains:
// {
// runningContext: 'inMeeting',
// clientVersion: '5.x.x',
// unsupportedApis: [] // APIs not supported in this client version
// }
ルール:
- 他の SDK メソッドを呼び出す前に、必ず
config()を呼び出してください config()に記載した機能のみ利用できます- 機能は Marketplace の OAuth スコープと一致している必要があります
- 適切に機能を縮退できるよう、
unsupportedApisを確認してください
クライアント内 OAuth(概要)
ブラウザーへのリダイレクトが不要な、最適な認証 UX です。
// 1. Get code challenge from your backend
const { codeChallenge, state } = await fetch('/api/auth/challenge').then(r => r.json());
// 2. Trigger in-client authorization
await zoomSdk.authorize({ codeChallenge, state });
// 3. Listen for authorization result
zoomSdk.addEventListener('onAuthorized', async (event) => {
const { code, state } = event;
// 4. Send code to backend for token exchange
await fetch('/api/auth/token', {
method: 'POST',
body: JSON.stringify({ code, state })
});
});
実装の全容については、クライアント内 OAuth ガイド を参照してください。
Layers API(概要)
没入型のビデオレイアウトやカメラオーバーレイを構築できます。
// Start immersive mode - replaces gallery view
await zoomSdk.runRenderingContext({ view: 'immersive' });
// Position participant video feeds
await zoomSdk.drawParticipant({
participantUUID: 'user-uuid',
x: 0, y: 0, width: 640, height: 480, zIndex: 1
});
// Add overlay images
await zoomSdk.drawImage({
imageData: canvas.toDataURL(),
x: 0, y: 0, width: 1280, height: 720, zIndex: 0
});
// Exit immersive mode
await zoomSdk.closeRenderingContext();
Layers Immersive と Camera Mode を参照してください。
環境変数
| 変数 | 説明 | 確認場所 |
|---|---|---|
ZOOM_APP_CLIENT_ID | アプリのクライアント ID | Marketplace -> アプリ -> App Credentials |
ZOOM_APP_CLIENT_SECRET | アプリのクライアントシークレット | Marketplace -> アプリ -> App Credentials |
ZOOM_APP_REDIRECT_URI | OAuth リダイレクト URL | サーバー URL + /auth |
SESSION_SECRET | Cookie 署名用シークレット | ランダムな文字列を生成します |
ZOOM_HOST | Zoom ホスト URL | https://zoom.us(または https://zoomgov.com) |
共通 API
| API | 説明 |
|---|---|
config() | SDK を初期化し、機能をリクエストします |
getMeetingContext() | ミーティング ID、トピック、ステータスを取得します |
getUserContext() | ユーザー名、ロール、参加者 ID を取得します |
getRunningContext() | 現在の実行コンテキストを取得します |
getMeetingParticipants() | 参加者の一覧を取得します |
shareApp() | アプリの画面を参加者と共有します |
openUrl({ url }) | 外部ブラウザーで URL を開きます |
sendAppInvitation() | アプリを開くようユーザーを招待します |
authorize() | クライアント内 OAuth を開始します |
connect() | 他のアプリインスタンスに接続します |
postMessage() | 接続済みのインスタンスにメッセージを送信します |
runRenderingContext() | Layers API(イマーシブ/カメラ)を開始します |
expandApp({ action }) | アプリパネルを展開/折りたたみます |
showNotification() | Zoom に通知を表示します |
ドキュメントライブラリ全体
コア概念
- アーキテクチャ - フロントエンド/バックエンドのパターン、埋め込みブラウザー、ディープリンク、X-Zoom-App-Context
- 実行コンテキスト - すべてのコンテキスト、コンテキスト固有の API、複数インスタンス間の通信
- セキュリティ - OWASP ヘッダー、CSP、Cookie のセキュリティ、PKCE、トークンストレージ
完全なサンプル
- クイックスタート - Express + SDK アプリによる Hello World
- クライアント内 OAuth - PKCE 認可フロー
- Layers イマーシブ - カスタムビデオレイアウト
- カメラモード - 仮想カメラのオーバーレイ
- 共同作業モード - 参加者間で共有する状態
- ゲストモード - 未認証/認証済み/認可済みの状態
- ブレイクアウトルーム - ルームの検出とルーム間の状態
- アプリ間通信 - インスタンス間での connect + postMessage
トラブルシューティング
リファレンス
- API リファレンス - 100 以上の SDK メソッドすべて
- イベントリファレンス - すべての SDK イベントリスナー
- Layers API リファレンス - 描画およびレンダリングのメソッド
- OAuth リファレンス - Zoom Apps の OAuth フロー
- Zoom Mail - メールプラグインの統合
サンプルリポジトリ
公式(Zoom による提供)
| リポジトリ | 種類 | 最終更新日 | ステータス | SDK バージョン |
|---|---|---|---|---|
| zoomapps-sample-js | Hello World(Vanilla JS) | Dec 2025 | Active | ^0.16.26 |
| zoomapps-advancedsample-react | 高度なサンプル(React + Redis) | Oct 2025 | Active | 0.16.0 |
| zoomapps-customlayout-js | Layers API | Nov 2023 | Stale | ^0.16.8 |
| zoomapps-texteditor-vuejs | 共同作業(Vue + Y.js) | Oct 2023 | Stale | ^0.16.7 |
| zoomapps-serverless-vuejs | サーバーレス(Firebase) | Aug 2024 | Stale | ^0.16.21 |
| zoomapps-cameramode-vuejs | カメラモード | - | - | - |
| zoomapps-workshop-sample | ワークショップ | - | - | - |
新規プロジェクトにおすすめ: @zoom/appssdk のバージョン ^0.16.26 を使用してください。
コミュニティ
| 種類 | リポジトリ | 説明 |
|---|---|---|
| ライブラリ | harvard-edtech/zaccl | Zoom アプリ向けの包括的な接続ライブラリ |
全リスト:general/references/community-repos.mdを参照してください。
学習パス
- 開始:
zoomapps-sample-js- 最もシンプルで、最新のサンプル - 応用:
zoomapps-advancedsample-react- 包括的なサンプル(クライアント内 OAuth、ゲストモード、コラボレーション) - 特化:機能に応じて選択(レイヤー、サーバーレス、カメラモード)
重要な注意点(実際の開発で判明した問題)
1. グローバル変数の競合
CDN スクリプトは window.zoomSdk を定義します。コード内で let zoomSdk を宣言すると、SyntaxError: redeclaration of non-configurable global property が発生します。let sdk = window.zoomSdk または NPM インポートを使用してください。
2. ドメインの許可リスト
アプリの URL は、Marketplace のドメイン許可リストに必ず登録してください。登録しないと、Zoom にエラーが表示されず、空白のパネルが表示されます。また、appssdk.zoom.us と使用する CDN ドメインも追加してください。
3. ケイパビリティの登録が必要
利用できるのは、config({ capabilities: [...] }) に登録された API のみです。登録されていない API を呼び出すとエラーが発生します。イベントリスナーにも同じことが当てはまります。
4. SDK は Zoom 内でのみ動作
Zoom クライアントの外部では zoomSdk.config() がエラーになります。ブラウザーへのフォールバックを用意し、必ず try/catch で囲んでください。
try { await zoomSdk.config({...}); } catch { showBrowserPreview(); }
5. ngrok URL の変更
無料の ngrok URL は再起動のたびに変わります。Marketplace の 4 か所(ホーム URL、リダイレクト URL、OAuth 許可リスト、ドメイン許可リスト)を更新する必要があります。サブドメインを固定するには、ngrok の有料プランを検討してください。
6. クライアント内 OAuth と Web OAuth
最適な UX を実現するには、ブラウザーへのリダイレクトが不要な zoomSdk.authorize()(クライアント内)を使用してください。Marketplace からの初回インストール時のみ、Web リダイレクトにフォールバックしてください。
7. カメラモードの CEF 競合状態
カメラモードでは CEF を使用するため、初期化に時間がかかります。呼び出しが早すぎると、drawImage/drawWebView が失敗する場合があります。指数バックオフを使った再試行を実装してください。
8. Cookie の設定
Zoom の埋め込みブラウザーでは、SameSite=None および Secure=true を指定した Cookie が必要です。指定しないと、セッションが警告なしに切断されます。
9. State の検証
CSRF 攻撃を防ぐため、OAuth の state パラメーターを必ず検証してください。暗号学的に安全な乱数で state を生成して保存し、コールバック時に検証します。
リソース
- 公式ドキュメント:https://developers.zoom.us/docs/zoom-apps/
- SDK リファレンス:https://appssdk.zoom.us/
- NPM パッケージ:https://www.npmjs.com/package/@zoom/appssdk
- 開発者フォーラム:https://devforum.zoom.us/
- GitHub SDK ソース:https://github.com/zoom/appssdk
サポートが必要ですか? 全体を確認するには、下の「統合インデックス」セクションから始めてください。
統合インデックス
このセクションは SKILL.md から移行されました。
クイックスタートパス
Zoom Apps を初めて使う場合は、次の順に進めてください。
-
まず、事前チェックを実行する -> RUNBOOK.md
-
アーキテクチャを読む -> concepts/architecture.md
- フロントエンド/バックエンドのパターン、埋め込みブラウザー、ディープリンク
- Zoom がアプリを読み込み、通信する仕組みを理解する
-
最初のアプリを作成する -> examples/quick-start.md
- Express + SDK による完全な Hello World
- ローカル開発用の ngrok 設定
-
実行コンテキストを理解する -> concepts/running-contexts.md
- アプリが実行される場所(inMeeting、inMainClient、inWebinar など)
- コンテキスト固有の API と制限事項
-
OAuth を実装する -> examples/in-client-oauth.md
- PKCE を使ったクライアント内 OAuth(最適な UX)
- トークンの交換と保存
-
機能を追加する -> references/apis.md
- カテゴリ別に整理された 100 以上の SDK メソッド
- 各メソッドのコード例
-
トラブルシューティングを行う -> troubleshooting/common-issues.md
- よくある問題をすばやく診断
ドキュメント構成
zoom-apps-sdk/
├── SKILL.md # Main skill overview
├── SKILL.md # This file - navigation guide
│
├── concepts/ # Core architectural patterns
│ ├── architecture.md # Frontend/backend, embedded browser, OAuth flow
│ ├── running-contexts.md # Where your app runs + context-specific APIs
│ └── security.md # OWASP headers, CSP, data access layers
│
├── examples/ # Complete working code
│ ├── quick-start.md # Hello World - minimal Express + SDK app
│ ├── in-client-oauth.md # In-Client OAuth with PKCE
│ ├── layers-immersive.md # Layers API - immersive mode (custom layouts)
│ ├── layers-camera.md # Layers API - camera mode (virtual camera)
│ ├── collaborate-mode.md # Collaborate mode (shared state)
│ ├── guest-mode.md # Guest mode (unauthenticated -> authorized)
│ ├── breakout-rooms.md # Breakout room integration
│ └── app-communication.md # connect + postMessage between instances
│
├── troubleshooting/ # Problem solving guides
│ ├── common-issues.md # Quick diagnostics, error codes
│ ├── debugging.md # Local dev setup, ngrok, browser preview
│ └── migration.md # SDK version migration notes
│
└── references/ # Reference documentation
├── apis.md # Complete API reference (100+ methods)
├── events.md # All SDK events
├── layers-api.md # Layers API detailed reference
├── oauth.md # OAuth flows for Zoom Apps
└── zmail-sdk.md # Zoom Mail integration
ユースケース別
基本的な Zoom App を作りたい
- アーキテクチャ - パターンを理解する
- クイックスタート - Hello World を作成する
- クライアント内 OAuth - 認可を追加する
- セキュリティ - 必須ヘッダー
イマーシブなビデオレイアウトを作りたい(Layers API)
- Layers イマーシブ - カスタムビデオ配置
- Layers API リファレンス - すべての描画メソッド
- アプリ通信 - 参加者間でレイアウトを同期する
バーチャルカメラのオーバーレイを作りたい
- カメラモード - カメラモードのレンダリング
- Layers API リファレンス - 描画メソッド
リアルタイムで共同作業したい
ゲスト/匿名アクセスを実現したい
- ゲストモード - 3 つの認可状態
- クライアント内 OAuth - promptAuthorize フロー
ブレイクアウトルームに対応したい
- ブレイクアウトルーム - ルームの検出と状態の同期
メインクライアントとミーティング間で同期したい
サーバーレスでデプロイしたい
- クイックスタート - まず基本パターンを理解する
- サンプル:zoomapps-serverless-vuejs - Firebase パターン
Zoom Mail との連携を追加したい
- Zoom Mail リファレンス - REST API + メールプラグイン
エラーが発生する
特に重要なドキュメント
1. アーキテクチャ(基礎)
Zoom Apps の仕組みを理解します。埋め込みブラウザー上のフロントエンド、OAuth/API 用のバックエンド、両者をつなぐ SDK。この基礎がなければ、ほかの内容も理解できません。
2. クイックスタート(最初のアプリ)
動作するコード一式です。高度な機能に取り組む前に、まず何かを動かしてみましょう。
3. よくある問題(最も多い問題)
troubleshooting/common-issues.md
Zoom Apps の問題の 90% は、ドメインの許可リスト、グローバル変数の競合、または必要な機能の不足が原因です。
主な学び
重要な発見:
-
グローバル変数の競合が最大の落とし穴です
- CDN スクリプトはグローバルに
window.zoomSdkを定義します - Zoom のブラウザーでは
let zoomSdk = ...によって SyntaxError が発生します let sdk = window.zoomSdkまたは NPM インポートを使用してください
- CDN スクリプトはグローバルに
-
ドメインの許可リストへの登録は必須です
- ドメインが許可リストにない場合、アプリはエラーを表示せずに空白のパネルを表示します
- 独自のドメインに加えて、
appssdk.zoom.usと CDN のドメインも登録する必要があります - ngrok の URL は再起動のたびに変わるため、その都度 Marketplace を更新する必要があります
-
すべての機能は
config()が制御します- 最初に呼び出し、すべての機能を列挙する必要があります
- 列挙されていない機能を使うとエラーが発生します
- クライアントのバージョンとの互換性は
unsupportedApisを確認してください
-
UX では Web OAuth よりアプリ内 OAuth が優れています
authorize()を使うと、ブラウザーにリダイレクトせず Zoom 内にユーザーをとどめられます- Web リダイレクトが必要なのは、Marketplace への初回インストール時のみです
- 必ず PKCE(code_verifier + code_challenge)を実装してください
-
アプリのインスタンスは 2 つ同時に動作する場合があります
- メインクライアントのインスタンスとミーティングのインスタンスです
connect()+postMessage()を使って両者を同期してください- メインクライアントでミーティング前のセットアップを行い、ミーティング内で利用してください
-
カメラモードには CEF 固有の問題があります
- CEF の初期化には時間がかかります
- 早すぎると描画呼び出しに失敗することがあります
- 指数バックオフを使って再試行してください
-
Cookie の設定が重要です
SameSite=None+Secure=trueが必要です- これらの設定がないと、埋め込みブラウザーでセッションがエラーを表示せずに失敗します
クイックリファレンス
「アプリに空白のパネルが表示される」
-> ドメインの許可リスト - Marketplace にドメインを追加してください
「SyntaxError: redeclaration」
-> グローバル変数 - let sdk = window.zoomSdk を使用してください
「config() でエラーが発生する」
-> ブラウザープレビュー - SDK は Zoom 内でのみ動作します
「API 呼び出しがエラーを表示せずに失敗する」
-> OAuth スコープ - Marketplace で必要なスコープを追加してください
「[機能]を実装するにはどうすればよいですか?」
-> API リファレンス - メソッドを探し、必要な機能を確認してください
「ローカルでテストするにはどうすればよいですか?」
-> デバッグガイド - ngrok + Marketplace の設定
ドキュメントのバージョン
@zoom/appssdk v0.16.x(最新:0.16.26+)に基づいています
コーディングを楽しんでください!