5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pythonでZoom APIを触ってみた

Posted at

近年コロナウィルス感染症の流行以来、リモートワークが日本国内で進んでいる。
以前より広く使われているZoomだが、APIが公開されており、

  1. ユーザー一覧の取得1
  2. ユーザーのミーティングIDやウェビナーIDの生成1 が行える。

今回はpythonを使ってZoom APIを触ってみようと思う。
しかし、Python標準ライブラリurllib, json等を使って、直接リクエストをZoom APIへ送って...とするのは非常に面倒である。
よって、Zoom APIを体験することが目的であるため、pyzoom2を使用し、Zoom APIを触っていく。

準備

Python 3.9.1
venvで仮想環境を作成し、pip install pyzoomにてpyzoomをインストールした。

Zoomのユーザー登録をしていない方はまず作成すること。
ZoomにsigninしてJWTアプリを作成する。3

ミーティング部屋・会議室を作ってみる

create_room.py
from pyzoom import ZoomClient
client = ZoomClient('YOUR_ZOOM_API_KEY', 'YOUR_ZOOM_API_SECRET')
meeting = client.meetings.create_meeting('Auto created 1', start_time=dt.now().isoformat(), duration_min=60, password='not-secure')
print(meeting.id)

簡単に部屋のIDを生成できた。

実行結果の確認は、https://zoom.us/meeting#/upcomingもしくは、手持ちのスマホZoom AppからIDが生成されたか確認する。
ここで出力したmeeting.idを次で使うので控えておくこと!

部屋の名前を変えてみる

update_name.py
from pyzoom import ZoomClient
client = ZoomClient('YOUR_ZOOM_API_KEY', 'YOUR_ZOOM_API_SECRET')
meeting = client.meetings.update_meeting('日本語に変える', meeting_id = meeting.id ,start_time=dt.now().isoformat(), duration_min=30,password='aiueo')

さきほどのmeeting.idを使用して、部屋を編集してみる。
実行後に部屋名・期間・パスワードの変更ができたことが分かる。

pyzoomの内部を覗いてみる

pyzoom/_base.py
@attr.s
class APIClientBase:
    api_key: str = attr.ib(repr=False)
    api_secret: str = attr.ib(repr=False)

    name = "zoom_api_client"
    user_id: str = "me"
    base_url: str = "https://api.zoom.us/v2"

Zoom APIのドキュメント4にあるとおり、https://api.zoom.us/v2を使用している。

pyzoom/_base.py
    def bearer_token(self) -> str:
        return self.generate_jwt(self.api_key, self.api_secret)

また、API_KeyAPI_Secretからトークンを生成していることも分かる。
JWTを使用したこのラッパーは、残念ながらZoomの都合により2023年6月頃にJWTapp廃止とともに使えなくなると思われる。
非常に簡単にAPIへアクセスできるため、OAuthへの対応が望まれる。

ただし、はじめてのZoom API - OAuth編にあるようにOAuth自体の仕組みは単純であるため、実装することは可能である。

駆け足ではあるが今回はZoom APIを触ってみた。
FlaskDjangoを使い、ウェブアプリから簡単に、直接Zoomを起動しなくても部屋を作成・編集・管理を行うことができる。
次回はZoom Video SDKZoom Meeting SDKを使用したいと思う。

  1. あのビデオ会議ツール「Zoom」がAPIとSDKを提供!Zoom Developer Programとは何か【デブサミ2022】, 2022.3.30 2

  2. Python wrapper for Zoom API,

  3. はじめての Zoom API - JWT編

  4. Zoom API

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?