やりたいこと
rubyを使ってzoom APIで通話できるとこまでやりたい(がweb関係の知識がない)。
つまり、この内容のRuby版
http://r9.hateblo.jp/entry/2018/01/30/081534
とりあえず、やったことや参考になりそうなことは以下にまとめています。
https://qiita.com/simanezumi1989/items/f990871168fff11d509d
現在、以下のコードをrails cで実行しJWTを生成しました。
ruby
1module ApplicationHelper 2 class TS_Zoom 3 def GenerateJWT 4 payload = { 5 iss: 'api_key', #api_key 6 exp: Time.now.to_i + 4 * 3600 7 } 8 secret = 'secret_key' #secret_key 9 token = JWT.encode payload, secret, 'HS256' 10 return token 11 end 12 end 13end
ターミナルで
curl -H 'Authorization: Bearer JWTの文字列' https://api.zoom.us/v2/users
を実行すれば、ユーザ情報の取得はできました。
ここから通話するまでどうすればいいのでしょうか?
参考にしているサイトから察するに、Rubyで curlを叩く方法がわかれば行けると思います。
追記
教えていただいた 'net/http' でしたのコードを実行してみたところ、うまくいきました。
ruby
1require 'net/https' 2require 'net/http' 3require 'uri' 4require 'json' 5 6module ApplicationHelper 7 class TS_Zoom 8 def initialize 9 @api_key = "aaa" 10 @secret = "bbb" 11 @user_id = "ccc" 12 @jwt = "ddd" 13 @meeting_url = "ddd" 14 end 15 def GenerateJWT 16 payload = { 17 iss: @api_key, 18 exp: Time.now.to_i + 4 * 36000 19 } 20 token = JWT.encode payload, @secret, 'HS256' 21 return token 22 end 23 24 def GetUserData(_token) 25 uri = URI.parse("https://api.zoom.us/v2/users") 26 request = Net::HTTP::Get.new(uri) 27 request["Authorization"] = "Bearer "+_token 28 req_options = { 29 use_ssl: uri.scheme == "https", 30 } 31 response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| 32 http.request(request) 33 end 34 result = JSON.parse(response.body) 35 return result["users"][0]["id"].to_s 36 end 37 38 def GetMeetingURL 39 @jwt = self.GenerateJWT 40 @user_id = self.GetUserData(@jwt) 41 @meeting_url = "https://api.zoom.us/v2/users/#{@user_id}/meetings" 42 43 uri = URI.parse(@meeting_url) 44 http = Net::HTTP.new(uri.host, uri.port) 45 46 http.use_ssl = true 47 http.verify_mode = OpenSSL::SSL::VERIFY_NONE 48 49 req = Net::HTTP::Post.new(uri.path) 50 req["Authorization"] = "Bearer #{@jwt}" 51 aa = "Bearer #{@jwt}" 52 puts aa 53 req["Content-Type"] = "application/json" 54 req.body = { 55 "type":1, 56 }.to_json 57 res = http.request(req) 58 puts res.class 59 puts res.code 60 puts res.body 61 return res 62 end 63 end 64end

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/24 10:41
2018/09/24 11:35