読み込み中 %

アイコン

Ruby×JWT ZoomAPIでミーティングを作成してSlack通知してみる

taikishiino
2020/08/01

ZoomAPIを試しに使ってみたかったので、Zoomミーティングを作成できるプログラムをRubyで書いてみました。 手元でrubyファイルを実行して、作成したZoomミーティングのURLがSlackに通知されるところまで解説していきます。

前提

・ZoomAPIの会員登録・開発用アプリの作成を行っていること

作成したZoomAPIアプリページの情報を編集する

以下の変数を編集していく

  • api_key
  • secret
  • jwt
  • user_id(※)

※ useridの取得方法 以下のコマンドをターミナルで実行すると、ユーザー情報が返ってくるので、その中からuseridを取得する

zsh
$ curl -H 'Authorization: Bearer [JWT Token]' https://api.zoom.us/v2/users
main.rb
def zoom
  # ZoomAPIリクエスト情報を作成
  api_key = 'aaaaaaa'
  secret  = 'bbbbbbb'
  user_id = 'ccccccc'
  jwt = 'ddddddd'
  meeting_url = "https://api.zoom.us/v2/users/#{user_id}/meetings"

  uri = URI.parse(meeting_url)
  http = Net::HTTP.new(uri.host, uri.port)

  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  req = Net::HTTP::Post.new(uri.path)
  req['Authorization'] = "Bearer #{jwt}"
  req['Content-Type'] = 'application/json'
  req.body = { 'type': 1 }.to_json

  # ZoomAPI実行
  res = http.request(req)
  puts res.body

  # レスポンスからzoomミーティングのURLを取得
  parseURL = JSON.parse(res.body)
  body = parseURL['join_url']
  return body
end

zoom

実行

zsh
$ ruby functions/main.rb

「本記事の内容+Slack通知」の処理を以下のリポジトリで公開しておりますので、よかったら参考にしてみてください。

https://github.com/taikishiino/zoom-api-ruby