ADVERTISEMENT

【Zoom】ZoomのAPIトークンを発行して個人ツールと連携する手順

【Zoom】ZoomのAPIトークンを発行して個人ツールと連携する手順
🛡️ 超解決

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とします。

お探しの解決策が見つからない場合は、こちらの「Zoomトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

Server-to-Server OAuthでトークンを発行する手順

Server-to-Server OAuthは、ユーザーの操作を介さずにプログラムから直接トークンを取得できる方式です。以下の手順で進めます。

アプリの作成とスコープの設定

  1. Zoom App Marketplaceにログイン
    ブラウザでZoom App Marketplaceにアクセスし、右上の「Build App」をクリックします(開発者アカウントが必要です)。
  2. アプリタイプを選択
    「Server-to-Server OAuth」を選び、「Create」をクリックします。
  3. アプリ情報の入力
    アプリ名や説明を入力し、「Continue」を進めます。ここでは任意の名前で構いません。
  4. スコープの追加
    「Scopes」タブで、使用したいAPIエンドポイントに対応するスコープを追加します。例えば、ミーティング一覧を取得するには「meeting:read:admin」などです。必要なスコープだけを選び、「Save」します。
  5. 認証情報の確認
    「App Credentials」タブにClient IDとClient Secretが表示されます。これらを安全な場所に保存します。Client Secretは再表示できませんので、必ずこの時点で控えてください。

アクセストークンの取得

  1. トークンエンドポイントに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です。
  2. リクエストの具体例(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"
  3. レスポンスの確認
    成功すると、以下のようなJSONが返ります。
    { "access_token": "eyJhbGci...", "token_type": "bearer", "expires_in": 3600 }
    access_tokenがAPI呼び出しに使用するトークンです。有効期限は1時間(3600秒)なので、必要に応じて更新してください。

JWTトークンを発行する手順(参考)

JWT方式はServer-to-Server OAuthよりシンプルですが、Zoomは新規アプリでのJWT作成を推奨していません。既存のプロジェクトで使う場合やテスト目的で行う場合の手順です。

  1. JWTアプリの作成
    Zoom App Marketplaceで「Build App」→「JWT」を選択し、アプリを作成します。
  2. API KeyとAPI Secretの取得
    「App Credentials」タブにAPI KeyとAPI Secretが表示されます。これらを保存します。
  3. 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ドキュメントで各エンドポイントの詳細を確認し、実際にツールに組み込んでみてください。


🎥
Zoomトラブル完全解決データベース 参加・接続/カメラ・マイク/画面共有/録画/ブレイクアウト/Webinar/セキュリティ/スケジュールのトラブルを即解消。会議運営や音声・映像の不調まで実務リファレンスとしてご活用ください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。