-
Notifications
You must be signed in to change notification settings - Fork 1
/
03_mclient_token.rb
46 lines (37 loc) · 1.18 KB
/
03_mclient_token.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/local/env ruby
# coding: utf-8
http_proxy = nil
# use HTTPS
mastodon_server = "mstdn-workers.com"
require 'net/https'
require 'uri'
require 'json'
client_id = nil
client_secret = nil
code = nil
File.open("off_bot.id","r"){|f|
client_id = f.gets.chomp
client_secret = f.gets.chomp
}
File.open("off_bot.code","r"){|f|
code = f.gets.chomp
}
uri = URI.parse("https://" + mastodon_server + "/oauth/token");
proxy_uri = { "addr" => nil, "port" => nil, "user" => nil, "pass" => nil }
if (http_proxy != nil)
puri = URI.parse(http_proxy)
proxy_uri['addr'] = puri.host
proxy_uri['port'] = puri.port
proxy_uri['user'] = puri.user
proxy_uri['pass'] = puri.password
end
http = Net::HTTP.new(uri.host, uri.port,proxy_uri['addr'],proxy_uri['port'],proxy_uri['user'],proxy_uri['pass'])
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # :P
req = Net::HTTP::Post.new(uri.path)
req.set_form_data({'grant_type' => 'authorization_code', 'redirect_uri' => 'urn:ietf:wg:oauth:2.0:oob', 'client_id' => client_id, 'client_secret' => client_secret, 'code' => code})
res = http.request(req)
json = JSON.parse(res.body)
File.open("off_bot.token","w"){|f|
f.puts json['access_token']
}