読み込み中 %

アイコン

Zoom API OAuthのチュートリアル

taikishiino
2020/07/10

OAuthのサンプルの動作確認までを解説した日本語の記事が少なかった(2020/06時点)ので、記事にしてみました。

[公式] Using OAuth 2.0

https://marketplace.zoom.us/docs/api-reference/using-zoom-apis#using-oauth

公式のOAuthサンプルアプリをクローン

https://github.com/zoom/zoom-oauth-sample-app

$ git clone https://github.com/zoom/zoom-oauth-sample-app.git
$ cd zoom-oauth-sample-app

ngrokの導入

ngrokとは

ローカルPC上で稼働しているネットワーク(TCP)サービスを外部公開できる便利なサービスらしいです。(例えば、ローカルPCのWebサーバを外部公開することができます)

  1. 以下のダウンロードサイトにて導入
    https://ngrok.com/download
  2. ダウンロード後、以下のコマンドで起動

    $ ./ngrok http 4000
    --------
    Session Status                online
    Account                       
    Version                       
    Region                        
    Web Interface                 http://127.0.0.1:4040
    Forwarding                    http://xxxxxxxxxxx.ngrok.io -> http://localhost:4000
    Forwarding                    https://xxxxxxxxxxx.ngrok.io -> http://localhost:4000

Zoom OAuth Appを作成

https://marketplace.zoom.us/develop/create

  1. 「Create an OAuth app」画面で、以下の設定して、Createする

    App Name: 任意
    Choose your app type:User-maneged app を選択
    Would you like to publish this app on Zoom App Marketplace?:オフ(グレーの状態)
  2. App Credentialsを設定する
    ngrokのURLを設定する
    Redirect URL for OAuth: http://xxxxxxxxxxx.ngrok.io
    WhiteList URL: http://xxxxxxxxxxx.ngrok.io
  3. Scopesを追加する
    サンプルアプリでは、User情報を取得するので、以下の項目にチェックをつけておく。 「User > View your profile information」

サンプルアプリを設定

  1. 設定を書く.envファイルを作成。

    $ touch .env
    $ vi .env
    clientID=[App CredentialsのClient ID]
    clientSecret=[App CredentialsのClient Secret]
    redirectURL=https://xxxxxxxxxxx.ngrok.io
  2. 起動

    $ yarn start
  3. 認証画面が開くので認証許可すると、ターミナル上にログインした認証情報が表示される

    access_token:
    refresh_token:
    API call
    {
      id:
      first_name:
      last_name:
      email:
      type:
      role_name:
      pmi:
      use_pmi:
      personal_meeting_url:
      timezone:
      verified:
      dept:
      created_at:
      last_login_time:
      last_client_version:
      pic_url:
      host_key:
      jid:
      group_ids:
      im_group_ids:
      account_id:
      language:
      phone_country:
      phone_number:
      status:
    }