近年コロナウィルス感染症の流行以来、リモートワークが日本国内で進んでいる。
以前より広く使われているZoom
だが、APIが公開されており、
今回はpythonを使ってZoom APIを触ってみようと思う。
しかし、Python標準ライブラリurllib
, json
等を使って、直接リクエストをZoom APIへ送って...とするのは非常に面倒である。
よって、Zoom API
を体験することが目的であるため、pyzoom
2を使用し、Zoom APIを触っていく。
準備
Python 3.9.1
venv
で仮想環境を作成し、pip install pyzoom
にてpyzoom
をインストールした。
Zoomのユーザー登録をしていない方はまず作成すること。
ZoomにsigninしてJWTアプリを作成する。3
ミーティング部屋・会議室を作ってみる
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
を次で使うので控えておくこと!
部屋の名前を変えてみる
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の内部を覗いてみる
@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
を使用している。
def bearer_token(self) -> str:
return self.generate_jwt(self.api_key, self.api_secret)
また、API_Key
とAPI_Secret
からトークンを生成していることも分かる。
JWTを使用したこのラッパーは、残念ながらZoomの都合により2023年6月頃にJWTapp廃止とともに使えなくなると思われる。
非常に簡単にAPIへアクセスできるため、OAuthへの対応が望まれる。
ただし、はじめてのZoom API - OAuth編にあるようにOAuth自体の仕組みは単純であるため、実装することは可能である。
駆け足ではあるが今回はZoom API
を触ってみた。
Flask
やDjango
を使い、ウェブアプリから簡単に、直接Zoomを起動しなくても部屋を作成・編集・管理を行うことができる。
次回はZoom Video SDK
やZoom Meeting SDK
を使用したいと思う。