質問編集履歴

5

問題の解決コード

2018/09/24 11:35

投稿

shimazu
shimazu

score38

test CHANGED
File without changes
test CHANGED
@@ -66,17 +66,7 @@
66
66
 
67
67
  # 追記
68
68
 
69
- 教えていただいた 'net/http' でしたのコードを実行してみたところ以下の結果が出て認証できていないよです。JWTは設定してるはずなのですがどうすればいいでょうか?
69
+ 教えていただいた 'net/http' でしたのコードを実行してみたところまくきまた。
70
-
71
- >
72
-
73
- Net::HTTPUnauthorized
74
-
75
- 401
76
-
77
- {"code":124,"message":"Access token is required."}
78
-
79
- => #<Net::HTTPUnauthorized 401 Unauthorized readbody=true>
80
70
 
81
71
 
82
72
 
@@ -86,6 +76,8 @@
86
76
 
87
77
  require 'net/https'
88
78
 
79
+ require 'net/http'
80
+
89
81
  require 'uri'
90
82
 
91
83
  require 'json'
@@ -98,15 +90,15 @@
98
90
 
99
91
  def initialize
100
92
 
101
- @api_key = "xxx"
93
+ @api_key = "aaa"
102
-
94
+
103
- @secret = 'yyy'
95
+ @secret = "bbb"
104
-
96
+
105
- @user_id = "zzz"
97
+ @user_id = "ccc"
106
-
98
+
107
- @JWT = "aaa"
99
+ @jwt = "ddd"
108
-
100
+
109
- @meeting_url = "bbb"
101
+ @meeting_url = "ddd"
110
102
 
111
103
  end
112
104
 
@@ -158,17 +150,11 @@
158
150
 
159
151
  def GetMeetingURL
160
152
 
161
- @JWT = self.GenerateJWT
153
+ @jwt = self.GenerateJWT
162
-
154
+
163
- @user_id = self.GetUserData(@JWT)
155
+ @user_id = self.GetUserData(@jwt)
164
-
156
+
165
- @meeting_url = "https://api.zoom.us/v2/users/" + @user_id + "/meetings"
157
+ @meeting_url = "https://api.zoom.us/v2/users/#{@user_id}/meetings"
166
-
167
- puts @JWT
168
-
169
- puts @user_id
170
-
171
- puts @meeting_url
172
158
 
173
159
 
174
160
 
@@ -184,14 +170,20 @@
184
170
 
185
171
 
186
172
 
173
+ req = Net::HTTP::Post.new(uri.path)
174
+
175
+ req["Authorization"] = "Bearer #{@jwt}"
176
+
177
+ aa = "Bearer #{@jwt}"
178
+
179
+ puts aa
180
+
187
- req = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
181
+ req["Content-Type"] = "application/json"
188
182
 
189
183
  req.body = {
190
184
 
191
185
  "type":1,
192
186
 
193
- "Authorization": "Bearer "+@JWT
194
-
195
187
  }.to_json
196
188
 
197
189
  res = http.request(req)

4

Rubyでのリクエストコードを追記

2018/09/24 11:35

投稿

shimazu
shimazu

score38

test CHANGED
File without changes
test CHANGED
@@ -61,3 +61,153 @@
61
61
  ここから通話するまでどうすればいいのでしょうか?
62
62
 
63
63
  参考にしているサイトから察するに、Rubyで curlを叩く方法がわかれば行けると思います。
64
+
65
+
66
+
67
+ # 追記
68
+
69
+ 教えていただいた 'net/http' でしたのコードを実行してみたところ以下の結果が出て認証できていないようです。JWTは設定しているはずなのですがどうすればいいでしょうか?
70
+
71
+ >
72
+
73
+ Net::HTTPUnauthorized
74
+
75
+ 401
76
+
77
+ {"code":124,"message":"Access token is required."}
78
+
79
+ => #<Net::HTTPUnauthorized 401 Unauthorized readbody=true>
80
+
81
+
82
+
83
+
84
+
85
+ ```ruby
86
+
87
+ require 'net/https'
88
+
89
+ require 'uri'
90
+
91
+ require 'json'
92
+
93
+
94
+
95
+ module ApplicationHelper
96
+
97
+ class TS_Zoom
98
+
99
+ def initialize
100
+
101
+ @api_key = "xxx"
102
+
103
+ @secret = 'yyy'
104
+
105
+ @user_id = "zzz"
106
+
107
+ @JWT = "aaa"
108
+
109
+ @meeting_url = "bbb"
110
+
111
+ end
112
+
113
+ def GenerateJWT
114
+
115
+ payload = {
116
+
117
+ iss: @api_key,
118
+
119
+ exp: Time.now.to_i + 4 * 36000
120
+
121
+ }
122
+
123
+ token = JWT.encode payload, @secret, 'HS256'
124
+
125
+ return token
126
+
127
+ end
128
+
129
+
130
+
131
+ def GetUserData(_token)
132
+
133
+ uri = URI.parse("https://api.zoom.us/v2/users")
134
+
135
+ request = Net::HTTP::Get.new(uri)
136
+
137
+ request["Authorization"] = "Bearer "+_token
138
+
139
+ req_options = {
140
+
141
+ use_ssl: uri.scheme == "https",
142
+
143
+ }
144
+
145
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
146
+
147
+ http.request(request)
148
+
149
+ end
150
+
151
+ result = JSON.parse(response.body)
152
+
153
+ return result["users"][0]["id"].to_s
154
+
155
+ end
156
+
157
+
158
+
159
+ def GetMeetingURL
160
+
161
+ @JWT = self.GenerateJWT
162
+
163
+ @user_id = self.GetUserData(@JWT)
164
+
165
+ @meeting_url = "https://api.zoom.us/v2/users/" + @user_id + "/meetings"
166
+
167
+ puts @JWT
168
+
169
+ puts @user_id
170
+
171
+ puts @meeting_url
172
+
173
+
174
+
175
+ uri = URI.parse(@meeting_url)
176
+
177
+ http = Net::HTTP.new(uri.host, uri.port)
178
+
179
+
180
+
181
+ http.use_ssl = true
182
+
183
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
184
+
185
+
186
+
187
+ req = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
188
+
189
+ req.body = {
190
+
191
+ "type":1,
192
+
193
+ "Authorization": "Bearer "+@JWT
194
+
195
+ }.to_json
196
+
197
+ res = http.request(req)
198
+
199
+ puts res.class
200
+
201
+ puts res.code
202
+
203
+ puts res.body
204
+
205
+ return res
206
+
207
+ end
208
+
209
+ end
210
+
211
+ end
212
+
213
+ ```

3

改善

2018/09/24 10:40

投稿

shimazu
shimazu

score38

test CHANGED
File without changes
test CHANGED
@@ -52,10 +52,12 @@
52
52
 
53
53
 
54
54
 
55
- そこで、ターミナルで
55
+ ターミナルで
56
56
 
57
- `curl -H 'Authorization: Bearer JWTの文字列' https://api.zoom.us/v2/users | jq .`
57
+ `curl -H 'Authorization: Bearer JWTの文字列' https://api.zoom.us/v2/users`
58
58
 
59
- を実行したところ`(23) Failed writing body`と出て、ユーザ情報は得られせんでした。
59
+ を実行すれば、ユーザ情報の取得できました。
60
60
 
61
- どうすれば、ユーザ情報が得られるでしょうか?
61
+ ここから通話するまでどうすればいいのでしょうか?
62
+
63
+ 参考にしているサイトから察するに、Rubyで curlを叩く方法がわかれば行けると思います。

2

行ったことの追加

2018/09/24 03:46

投稿

shimazu
shimazu

score38

test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,49 @@
13
13
  とりあえず、やったことや参考になりそうなことは以下にまとめています。
14
14
 
15
15
  [https://qiita.com/simanezumi1989/items/f990871168fff11d509d](https://qiita.com/simanezumi1989/items/f990871168fff11d509d)
16
+
17
+
18
+
19
+ 現在、以下のコードをrails cで実行しJWTを生成しました。
20
+
21
+
22
+
23
+ ```ruby
24
+
25
+ module ApplicationHelper
26
+
27
+ class TS_Zoom
28
+
29
+ def GenerateJWT
30
+
31
+ payload = {
32
+
33
+ iss: 'api_key', #api_key
34
+
35
+ exp: Time.now.to_i + 4 * 3600
36
+
37
+ }
38
+
39
+ secret = 'secret_key' #secret_key
40
+
41
+ token = JWT.encode payload, secret, 'HS256'
42
+
43
+ return token
44
+
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+
51
+ ```
52
+
53
+
54
+
55
+ そこで、ターミナルで
56
+
57
+ `curl -H 'Authorization: Bearer JWTの文字列' https://api.zoom.us/v2/users | jq .`
58
+
59
+ を実行したところ、`(23) Failed writing body`と出て、ユーザ情報は得られませんでした。
60
+
61
+ どうすれば、ユーザ情報が得られるでしょうか?

1

urlのリンク化

2018/09/23 13:00

投稿

shimazu
shimazu

score38

test CHANGED
File without changes
test CHANGED
@@ -12,4 +12,4 @@
12
12
 
13
13
  とりあえず、やったことや参考になりそうなことは以下にまとめています。
14
14
 
15
- https://qiita.com/simanezumi1989/items/f990871168fff11d509d
15
+ [https://qiita.com/simanezumi1989/items/f990871168fff11d509d](https://qiita.com/simanezumi1989/items/f990871168fff11d509d)