初心者からのZoom開発（APIとSDKの活用）

# はじめに

Zoomは、個人から企業まで幅広いユーザーが利用しているビデオ会議ツールです。Zoomはもっと便利に活用できるようになっており、会社内のシステムからミーティングを作成したり、自社サービスにzoomを追加するこもできます。
この記事では、ZoomのAPIやSDKを使用してできる簡単な開発事例を紹介します。

## Zoomアプリ開発の始め方

開発を始めるためには、まず「[zoom marketplace](https://marketplace.zoom.us/)」にサインインします（普段使用しているZoomアカウントでサインインできます）。

次に、右上の「Develop」から「Build App」を選択します。そうすると「Zoom App」や「JWT」、「OAuth」など7つのアプリタイプから選択することができます。今回は、アプリ開発の簡単な事例として以下の3つを紹介します。

![zoom marketplace.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/26dce70b-966b-1869-c4e6-e07d7460cc83.png)

### 1. 会社内のシステムから新規ミーティングを作成

会社内で使用しているシステムなどからZoom APIを使用して、新規ミーティングを作成することができます。そうすることで、社員の方はZoomへのログインが不要になり、アカウントのパスワードを共有する必要がないのでセキュリティ面でも安心できます。また機能を拡大することで、会議のスケジュール一覧を会社のシステムから見ることも可能になります。

このような機能を作成するには「Server-to-server OAuth」タイプを選択することで実現できます。開発を始めるには、Zoom Japanさんの記事「[はじめての Zoom API - Server-to-server OAuth編](https://qiita.com/yosuke-sawamura/items/fa036273a161b190478b)」を参考に始めてみましょう。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/aa7c3bd6-2321-25f4-1041-4cea2a363328.png" width="300" border="0">

私たちが開発している「[tender](https://tender.party/)」というアプリでは、以下の画像のように、イベント名、開催日時を指定することで、zoomミーティングを作成できるようにしています。
![create meeting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/ffdcaec4-b9d4-517b-f199-9fd687605283.png)


### 2. 自社サービスにZoomを追加

次に、自社のWebサービスやアプリ内でビデオ通話を実現する方法について説明します。ここで活用するのが「Meeting SDK」タイプです。Meeting SDKを利用すれば、ユーザーはZoomのアプリをダウンロードすることなく、自社サービス内で直接ビデオ通話が可能となります。これにより、ユーザーの環境に依存せずにサービスを提供することができます。例として、以下の画像のように任意のWebブラウザ内でzoomを使用することができます。
![meetingsdk-web.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/a0c688af-6821-07b2-8273-1e531d21b6ac.png)
引用：[zoom developers](https://developers.zoom.us/docs/meeting-sdk/)


活用事例として、「[Zoomの拡張機能！？シームレス連携が出来るAPIとSDKについて中の人に聞いてみた](https://zine.qiita.com/interview/202205-zoom/)」などが参考になると思います。

SDKを活用する際の第一歩として「meetingsdk-web-sample」や「meetingsdk-vuejs-sample」などのサンプルコードを活用して、開発を進めてみてください。
[サンプルコード一覧](https://github.com/orgs/zoom/repositories?q=topic%3Asample-app&type=all)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/79a4b643-f79d-74c8-a20f-277dca0b28dc.png" width="300" border=”0">



### 3. Zoomで使用できる独自アプリの作成

さらに一歩進んだ応用として、Zoomに付属する独自のアプリを作成する場合は「Zoom App」タイプを使用します。Zoom Appsを利用すれば、ZoomのUI上に自社のアプリを表示することが可能となります。例えば、以下画像のタイマー機能やノートの共有、タスク管理、リアルタイムの文字起こしなど、会議中に役立つ機能を提供することが可能です。
![zoomApp-Timer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/3e428603-af06-8e7c-d3ab-d2e7ed7de8a1.png)

まず初めは「[zoomapps-sample-js](https://github.com/zoom/zoomapps-sample-js)」を基に、自社のサービスと連携したZoom Appsを作成してみましょう。
補足）すでに多くのZoom Appsが作成されていますので、近い機能がないか「[Zoom marketplace](https://marketplace.zoom.us/)」などで調べてみてください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519977/4eccc783-cfba-ab64-015d-94dc6f172bdb.png" width="300" border=”0">

## 終わりに

開発の種類について、さらに詳しい情報は「[zoom developers](https://developers.zoom.us/docs/platform/key-concepts/)」をご覧ください。

これまでに紹介した方法を活用すれば、Zoomを自社サービスと連携させることが可能です。どんなに優れた機能も、ユーザーが使いやすい形で提供されなければその価値は半減してしまいます。ZoomのAPIやSDKを活用して、自社サービスをより価値あるものにしていきましょう。

私たちも、Zoomでの進行を補助する「[tender](https://tender.party/)」というZoomの機能を拡張する製品を開発しています。tenderでは、進行スライドに合わせたチャットの送信や音声案内、ブレイクアウトルームの設定など、また、参加者の映像をAIで認識する機能などが備わっています。

開発の過程で困ったことがあったり、Zoomで「こんな機能があったら良いな！」と思うことがあれば、株式会社HANATBAまでお気軽にご連絡ください。私たちはあなたのZoomアプリ開発を全力でサポートします。

これからの開発、頑張ってください！