> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Zoom

> Zoomのミーティング・レポート・クラウド録画を管理

## 概要

Zoomツールを使用すると、フローからZoomの操作を自動化できます。ミーティングの作成・更新(定期ミーティングを含む)、ユーザーのミーティング一覧取得、終了後のミーティングレポートや参加者一覧の取得、クラウド録画の管理まで、すべてZoomのServer-to-Server 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_MEETING`
  * `meeting_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`。
* `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_RECORDING`
  * `meeting_id` を指定してミーティングのクラウド録画詳細を取得します。`recording_files`、`share_url`、`password` などが返されます。
  * 主な入力: `include_fields`(任意。カンマ区切りの値)。
* `ZOOM_UPDATE_RECORDING_SETTINGS`
  * `meeting_id` を指定してクラウド録画の共有・視聴設定を更新します。最低1つの設定の指定が必要です。
  * 主な入力: `share_recording`(`none`、`internally`、`publicly`)、`viewer_download`、`password`、`on_demand`、`approval_type`、および高度なZoomフィールドを指定できる `settings` JSONオブジェクト。

## 認証

すべてのZoomツールは **Server-to-Server OAuth** を使用します。[Zoom App Marketplace](https://marketplace.zoom.us/) でServer-to-Server OAuthアプリを作成し、以下の値を `ZOOM_SERVER_TO_SERVER_OAUTH` シークレットとして登録してください。

* **Account ID**: ZoomアカウントのID
* **Client ID**: アプリのOAuthクライアントID
* **Client Secret**: アプリのOAuthクライアントシークレット

アクセストークンは `account_credentials` グラントで自動的に発行されるため、ユーザーのログイン操作やトークンの更新処理は不要です。

**注意**: 認証情報は機密情報として扱い、公開リポジトリにコミットしないでください。

### 例: スケジュールミーティングの作成

```yaml theme={null}
- id: create_meeting
  tool: ZOOM_CREATE_MEETING
  config:
    - name: client_id
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.client_id}}"
    - name: client_secret
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.client_secret}}"
    - name: account_id
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.account_id}}"
  input:
    - name: user_id
      value: host@example.com
    - name: topic
      value: 週次定例ミーティング
    - name: type
      value: "2"
    - name: start_time
      value: 2026-07-20T09:00:00Z
    - name: duration
      value: "30"
    - name: timezone
      value: Asia/Tokyo
    - name: agenda
      value: 今週の進捗と課題の確認。
```

### 例: 開催済みミーティングの要約(レポート + 参加者)

```yaml theme={null}
- id: get_report
  tool: ZOOM_GET_MEETING_REPORT
  config:
    - name: client_id
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.client_id}}"
    - name: client_secret
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.client_secret}}"
    - name: account_id
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.account_id}}"
  input:
    - name: meeting_id
      value: "123456789"
- id: list_participants
  tool: ZOOM_LIST_MEETING_PARTICIPANTS
  config:
    - name: client_id
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.client_id}}"
    - name: client_secret
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.client_secret}}"
    - name: account_id
      value: "{{secrets.ZOOM_SERVER_TO_SERVER_OAUTH.account_id}}"
  input:
    - name: meeting_id
      value: "123456789"
    - name: dedupe
      value: true
- id: summarize
  tool: OPENAI_INVOKE
  config:
    - name: version
      value: gpt-4
  input:
    - name: prompt
      value: |
        以下のZoomミーティングの内容をチーム向けに要約してください。

        ==ミーティングレポート==
        {{steps.get_report.result.report}}

        ==参加者==
        {{steps.list_participants.result.participants}}

        ==指示==
        1. ミーティングの概要(トピック・所要時間・出席状況)をまとめる
        2. 参加者と参加時間を一覧にする
        3. Slack投稿に適した簡潔な形式にする
```

## 注意事項

* `user_id` に指定するホストは、Server-to-Server OAuthアプリと同じZoomアカウントに所属している必要があります。`me` は管理者アカウントを指します。
* 定期ミーティングを作成するには `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時間です。ツールが自動的にキャッシュ・再取得します。
