概要
WebブラウザでZoom Video SDKを利用したので、ドキュメントが若干薄かったToken生成部分をまとめます。
公式ドキュメント: https://marketplace.zoom.us/docs/sdk/video/auth/
概要
pythonを使ってトークン生成する場合、jwtのライブラリが必要です。
PyJWTを使うのがおすすめです。pip install pyjwt
import jwt
headers = {
    'alg': 'HS256',
    'typ': 'JWT'
}
payload = {
    'app_key': f'{app_key}',
    'tpc': f'{tpc}',
    'version': 1, # 固定
    'role_type': 0,
    'iat': current_time, # 現在時刻 秒単位unixtime
    'exp': current_time + 7200 # 有効期限2時間、最大48時間
}
token = jwt.encode(payload, sdk_key, "HS256", headers)
属性について
- app_key
Zoom Developerのページから確認できる、SDK Keyのことです。 - sdk_key
Zoom Developerのページから確認できる、SDK Secretのことです。このキーは安全な場所に保存してください。 - tpc
tpcはセッションを一意に識別するためのキーです。client.join()の引数に指定するtopicと一致している必要があります。一意になるように、日時などを付加するといいでしょう。
 - role_type
ロールタイプは1か2を指定しますが、1は参加者、2は管理者です。
2の管理者を指定すると、leaveの引数にtrueを指定することでセッションを強制終了したりできます。
await client.leave(true); 
client.join()に失敗する場合のトラブルシューティング
- tpcとtopicが一致していない
 - 有効期限が切れている
 
まとめ
以下のプロジェクトで利用したので、SDKの細かい使い方などはソースコードを参考にしてください。
https://github.com/Contact-IoT-Digital-Signage
質問、ご指摘大歓迎です。