Open5

Zoom APIを使ってみて設計する上での注意点

はじめに

  • プロダクトでZoom APIを使う機会があった
  • 実際に使ってみて、一部設計上考慮すべき点があったのでその備忘的な記事

Zoom APIの認証方式

Zoom APIを利用するためのトークンを取得する方法は様々

  • OAuth
    • OAuth 2.0のフローに従ってZoomにサインイン認証する
    • ブラウザを必要とする
  • Server-to-Server
    • ブラウザでの認証を必要としない
    • サーバ間通信で利用する認証方式
  • JWT apps
    • JWT(SON Web Token)に準じたトークンを生成する
    • 任意でExpiration Timeを設定する
    • JWTにはrevoke(破棄)させる概念がないため、一度発行したトークンは失効期日を過ぎない限り利用可能
    • 2023年6月に廃止を予定

今回は、サーバ側で使いたかったため、Server-to-Server認証方式を選択

Server to Server OAuth App の特徴

ここに詳しく書いてある

https://qiita.com/yosuke-sawamura/items/fa036273a161b190478b

Qiitaをよく見ると、公式Docには書いていなかった

再発行すると以前のトークンは失効

という仕様を発見。有効なトークンは常に1つだけということ...
APIを同時実行した場合、先に発行したトークンが失効してしまうため、同時実行しない考慮をする必要が生じた。

で、どうしたか

  • Zoom APIを実行する処理にキュー(Cloud Tasks)を挟んだ
  • 同時実行されないようにmax concurrent を1に設定した
  • 今の所問題はおきていない

もしかしたらサポート経由で有効トークン数を増やしてもらえるかも...?

サポートとのやりとり継続中のため、まだなんとも

ログインするとコメントできます