概要
Zoomツールを使用すると、フローからZoomの操作を自動化できます。ミーティングの作成・更新(定期ミーティングを含む)、ユーザーのミーティング一覧取得、終了後のミーティングレポートや参加者一覧の取得、クラウド録画の管理までを実行できます。認証はアカウントレベルのServer-to-Server OAuth資格情報、または接続済みZoomユーザーアカウント(ユーザーレベルOAuth)のどちらかを利用できます。主な機能
ZOOM_CREATE_MEETING- ホスト(
user_id: ZoomユーザーIDまたはメールアドレス)のミーティングを即時・スケジュール・定期で作成します。 - 主な入力:
topic(必須)、type(1: 即時、2: スケジュール — デフォルト、3: 時刻固定なしの定期、8: 時刻固定ありの定期)、start_time(ISO 8601)、duration(分)、timezone、agenda、password(最大10文字)、recurrence(typeが 8 の場合は必須。JSON文字列またはオブジェクト)、settings(JSON文字列またはオブジェクト)。
- ホスト(
ZOOM_LIST_MEETINGS- ユーザーのミーティング一覧を取得します(
user_id。管理者アカウントにはmeを指定)。 - 主な入力:
type(scheduled— デフォルト、upcoming、live、upcoming_meetings、previous_meetings)、page_size(1〜300)、next_page_token、from/to(YYYY-MM-DD、過去ミーティングの一覧時)。
- ユーザーのミーティング一覧を取得します(
ZOOM_UPDATE_MEETINGmeeting_id(IDまたはUUID)で既存ミーティングを更新します。最低1つのフィールドの指定が必要です。- 主な入力:
topic、type、start_time、duration、timezone、agenda、password、recurrence、settings(代替ホストなど)、定期ミーティングの特定回を対象にするoccurrence_id。
ZOOM_LIST_MEETING_PARTICIPANTS- 開催済みミーティングの参加者一覧を
meeting_idで取得します。 - 主な入力:
page_size(1〜300、デフォルト100)、next_page_token、dedupe(デフォルトtrue— ユーザーID・メール・名前で重複参加者をまとめます)。
- 開催済みミーティングの参加者一覧を
ZOOM_GET_MEETING_REPORT- 2つのモードがあります。
meeting_idを指定すると特定ミーティングの詳細レポートを、省略するとユーザー・期間指定のレポートサマリ一覧を取得します。 - 主な入力(一覧モード):
user_id(デフォルトme)、from/to(YYYY-MM-DD)、type(past— デフォルト、pastJoined、pastOne、live)、page_size(1〜30)、next_page_token。
- 2つのモードがあります。
ZOOM_LIST_CLOUD_RECORDINGS- ユーザーのクラウド録画一覧を取得します。期間やゴミ箱のフィルタも指定できます。
- 主な入力:
user_id(デフォルトme)、from/to(YYYY-MM-DD)、page_size(1〜300、デフォルト30)、next_page_token、trash、trash_type(meeting_recordingsまたはrecording_file)。
ZOOM_GET_CLOUD_RECORDINGmeeting_idを指定してミーティングのクラウド録画詳細を取得します。recording_files、share_url、passwordなどが返されます。- 主な入力:
include_fields(任意。カンマ区切りの値)。
ZOOM_UPDATE_RECORDING_SETTINGSmeeting_idを指定してクラウド録画の共有・視聴設定を更新します。最低1つの設定の指定が必要です。- 主な入力:
share_recording(none、internally、publicly)、viewer_download、password、on_demand、approval_type、および高度なZoomフィールドを指定できるsettingsJSONオブジェクト。
認証
すべてのZoomツールは、configのauth_type フィールドで選択できる2つの認証方式に対応しています。
Server-to-Server OAuth(auth_type: server_to_server、デフォルト)
Zoom App Marketplace でServer-to-Server OAuthアプリを作成し、以下の値を ZOOM_SERVER_TO_SERVER_OAUTH シークレットとして登録してください。
- Account ID: ZoomアカウントのID
- Client ID: アプリのOAuthクライアントID
- Client Secret: アプリのOAuthクライアントシークレット
account_credentials グラントで自動的に発行されるため、ユーザーのログイン操作やトークンの更新処理は不要です。これはアカウントレベルの管理者資格情報であり、Zoomアカウント内の任意のユーザーを操作できる点に注意してください。
接続済みZoomアカウント(auth_type: oauth)
シークレット画面からZoomアカウントを接続し、その ZOOM_OAUTH シークレットを config の token フィールドで参照します。ツールはZoomのgranularなユーザーレベルスコープで接続したユーザーとして動作するため、接続ユーザー自身のミーティング・録画にしかアクセスできません。フローにアカウント全体の管理者権限を持たせたくない場合はこちらを推奨します。
Zoomの接続には組織登録のZoom OAuthアプリが必要です(組織設定 → OAuthアプリ。組織のOWNERのみ設定可能)。自組織のZoom OAuthアプリのクライアントID/シークレットを登録し、画面に表示される組織別コールバックURLをZoomアプリのリダイレクト許可リストに設定してください。トークンはフロー実行前に自動的にリフレッシュされます。
接続済みアカウントを使う場合、user_id には me を指定してください(ツールは接続ユーザーとして動作します)。また ZOOM_GET_MEETING_REPORT は単一ミーティングの詳細(meeting_id 指定モード。past_meetings API 経由)のみ対応で、期間指定のレポート一覧はZoom API側が管理者専用のためServer-to-Server資格情報が必要です。
注意: 認証情報は機密情報として扱い、公開リポジトリにコミットしないでください。
例: スケジュールミーティングの作成
例: 接続済みユーザーとしてミーティングを作成(ユーザーOAuth)
例: 開催済みミーティングの要約(レポート + 参加者)
注意事項
- Server-to-Server OAuthでは、
user_idに指定するホストはアプリと同じZoomアカウントに所属している必要があり、meは管理者アカウントを指します。接続済みアカウント(ユーザーOAuth)ではmeを指定してください。ツールは接続ユーザーとして動作し、他ユーザーのリソースへの操作はZoom側で拒否されます。 - 定期ミーティングを作成するには
typeを8にしてrecurrenceオブジェクトを指定します(例:{ "type": 2, "repeat_interval": 1, "weekly_days": "2,4", "end_times": 10 })。他のミーティングタイプではrecurrenceは無視されます。 recurrenceとsettingsの入力は、JSON文字列とZoom APIのオブジェクト形式のどちらでも指定できます。ZOOM_LIST_MEETING_PARTICIPANTSとZOOM_GET_MEETING_REPORTは開催済みのミーティングが対象です。ミーティング終了後に実行してください。- 一覧系のツールはページネーションに対応しています。返された
next_page_tokenを次のリクエストに渡すと続きのページを取得できます。page_sizeの上限は300です(ミーティングレポートの一覧モードのみ30)。 ZOOM_UPDATE_MEETINGとZOOM_UPDATE_RECORDING_SETTINGSは、更新するフィールドが1つも指定されていない場合はエラーになります。account_credentialsグラントで発行されるアクセストークンの有効期限は1時間です。ツールが自動的にキャッシュ・再取得します。