ZoomのAPIトークンを発行して個人ツールと連携する方法がわからず、困っていませんか。この記事では、Zoom App Marketplaceでアプリを作成し、APIトークンを発行する手順を詳しく解説します。これを読めば、自作のスクリプトやGoogle Apps ScriptなどからZoom APIを呼び出せるようになります。
【要点】Zoom APIトークンを発行し個人ツールと連携する手順
- Zoom App Marketplaceでのアプリ作成: アプリタイプを「Server-to-Server OAuth」または「JWT」から選択し、必要なスコープを設定します。
- Client IDとClient Secretの取得: アプリ作成後に発行される認証情報を安全に保管します。
- アクセストークンの取得: OAuthエンドポイントにPOSTリクエストを送信して一時的なアクセストークンを入手します。
- 個人ツールでのAPI呼び出し: 取得したアクセストークンをAuthorizationヘッダーに指定して、Zoom APIを利用します。
ADVERTISEMENT
目次
APIトークン発行の前に知っておくべきこと
Zoom APIを利用するには、Zoomアカウントと開発者向けアプリの登録が必要です。無料アカウントでもAPIは使用できますが、一部のエンドポイントは有料ライセンスが必要な場合があります。APIトークンは、アプリの認証情報を使って発行する一時的なアクセスキーです。Zoomでは主に2種類の認証方式が利用できます。1つはサーバー間通信に適したServer-to-Server OAuth(M2M認証)で、もう1つは扱いが簡単なJWTです。ただし、JWTは新規発行が非推奨となっているため、新しいプロジェクトではServer-to-Server OAuthを推奨します。本記事では両方の手順を解説しますが、メインはServer-to-Server OAuthとします。
Server-to-Server OAuthでトークンを発行する手順
Server-to-Server OAuthは、ユーザーの操作を介さずにプログラムから直接トークンを取得できる方式です。以下の手順で進めます。
アプリの作成とスコープの設定
- Zoom App Marketplaceにログイン
ブラウザでZoom App Marketplaceにアクセスし、右上の「Build App」をクリックします(開発者アカウントが必要です)。 - アプリタイプを選択
「Server-to-Server OAuth」を選び、「Create」をクリックします。 - アプリ情報の入力
アプリ名や説明を入力し、「Continue」を進めます。ここでは任意の名前で構いません。 - スコープの追加
「Scopes」タブで、使用したいAPIエンドポイントに対応するスコープを追加します。例えば、ミーティング一覧を取得するには「meeting:read:admin」などです。必要なスコープだけを選び、「Save」します。 - 認証情報の確認
「App Credentials」タブにClient IDとClient Secretが表示されます。これらを安全な場所に保存します。Client Secretは再表示できませんので、必ずこの時点で控えてください。
アクセストークンの取得
- トークンエンドポイントにPOSTリクエストを送信
以下の形式でHTTPリクエストを送信します。ツールにはcurlやお好きなライブラリを使用してください。POST https://zoom.us/oauth/token?grant_type=account_credentials&account_id={account_id}
AuthorizationヘッダーにはBasic認証でClient ID:Client SecretをBase64エンコードした値を指定します。Content-Typeはapplication/x-www-form-urlencodedです。 - リクエストの具体例(curl)
ターミナルで以下のコマンドを実行します。`YOUR_CLIENT_ID`、`YOUR_CLIENT_SECRET`、`YOUR_ACCOUNT_ID`は実際の値に置き換えてください。curl -X POST "https://zoom.us/oauth/token?grant_type=account_credentials&account_id=YOUR_ACCOUNT_ID" \
-H "Authorization: Basic $(echo -n YOUR_CLIENT_ID:YOUR_CLIENT_SECRET | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" - レスポンスの確認
成功すると、以下のようなJSONが返ります。{ "access_token": "eyJhbGci...", "token_type": "bearer", "expires_in": 3600 }
access_tokenがAPI呼び出しに使用するトークンです。有効期限は1時間(3600秒)なので、必要に応じて更新してください。
JWTトークンを発行する手順(参考)
JWT方式はServer-to-Server OAuthよりシンプルですが、Zoomは新規アプリでのJWT作成を推奨していません。既存のプロジェクトで使う場合やテスト目的で行う場合の手順です。
- JWTアプリの作成
Zoom App Marketplaceで「Build App」→「JWT」を選択し、アプリを作成します。 - API KeyとAPI Secretの取得
「App Credentials」タブにAPI KeyとAPI Secretが表示されます。これらを保存します。 - JWTトークンの生成
JWTトークンはサーバー側で生成する必要があります。Zoomは自動生成を提供していないため、自分でJWTライブラリを使って署名します。ペイロードには`iss`(API Key)、`exp`(有効期限)などを含めます。有効期限は最大1時間です。例えばNode.jsのjsonwebtokenライブラリで以下のように生成します。const jwt = require('jsonwebtoken');
const token = jwt.sign({ iss: 'API_KEY', exp: Math.floor(Date.now()/1000)+3600 }, 'API_SECRET');
このtokenをAuthorization: Bearer ヘッダーに指定してAPIを呼び出します。
ADVERTISEMENT
発行したトークンを個人ツールと連携する際の注意点
トークンを取得したら、個人ツール(Google Apps Script、Pythonスクリプト、IFTTTなど)でZoom APIを呼び出せます。以下の注意点を押さえておきましょう。
トークンの有効期限を管理する
アクセストークンの有効期限は1時間です。期限切れになる前に新しいトークンを取得する処理を組み込みます。Server-to-Server OAuthでは、同じリクエストで新しいトークンを何度でも発行できます。JWTの場合は毎回新たにトークンを生成します。
スコープは必要最小限にする
セキュリティのため、実際に使うAPIに必要なスコープだけをアプリに追加します。不必要なスコープは権限の悪用リスクを高めます。
レート制限に注意する
Zoom APIにはレート制限があります。アカウントのプランやエンドポイントによって異なりますが、大量のリクエストを短時間に送ると一時的にブロックされる可能性があります。リトライ処理と間隔を適切に設定してください。
エラーハンドリングを実装する
API呼び出しが失敗した場合の処理を実装します。特に401エラーは認証情報が無効な場合に発生します。その時はトークンを再取得してリトライするロジックを入れましょう。
まとめ
この記事では、Zoom APIトークンを発行して個人ツールと連携する手順を解説しました。Server-to-Server OAuthアプリを作成し、Client IDとClient Secretを使ってアクセストークンを取得する方法が基本です。JWTも参考までに紹介しましたが、新規ではServer-to-Server OAuthをご利用ください。取得したトークンを使って、ミーティングの作成や参加者リストの取得など、さまざまなZoom機能をスクリプトから操作できます。次のステップとしては、Zoom APIドキュメントで各エンドポイントの詳細を確認し、実際にツールに組み込んでみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Zoomの人気記事ランキング
- 【Zoom】Zoomデスクトップアプリのインストールと初期設定手順
- 【Zoom】Zoomの言語表示を日本語に切り替える方法
- 【Zoom】Zoomを最新バージョンに更新する手順と自動更新の設定
- 【Zoom】会議に参加できないときの原因と直し方!URLや認証エラーの対処
- 【Zoom】Outlook予定表とZoomを連携してワンクリックで会議作成
- 【Zoom】画面共有ができないときの権限確認と再接続手順
- 【Zoom】SSOでサインインできないときの設定確認と再試行手順
- 【Zoom】iPhoneやiPadの画面をZoomで共有する手順
- 【Zoom】ブレイクアウトを自動・手動・自由選択で割り当てる手順
- 【Zoom】チャット内容を保存する設定と保存先の確認方法
