oauthtoken 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/oareq +3 -0
- data/bin/oatok +1 -1
- data/lib/oauth_token/command/oareq.rb +109 -0
- data/lib/oauth_token/version.rb +1 -1
- data/oauthtoken.gemspec +1 -1
- data/spec/lib/oauth_token/command/oareq_spec.rb +44 -0
- data/spec/spec_helper.rb +6 -0
- metadata +73 -31
- checksums.yaml +0 -7
data/bin/oareq
ADDED
data/bin/oatok
CHANGED
@@ -0,0 +1,109 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "json"
|
3
|
+
require "oauth"
|
4
|
+
require "optparse"
|
5
|
+
|
6
|
+
authorize_url = nil
|
7
|
+
consumer_key = nil
|
8
|
+
consumer_secret = nil
|
9
|
+
access_token = nil
|
10
|
+
access_token_secret = nil
|
11
|
+
request_method = "GET"
|
12
|
+
request_headers = {}
|
13
|
+
http_post_data = nil
|
14
|
+
retry_max_count = -1
|
15
|
+
retry_interval = 60
|
16
|
+
|
17
|
+
op = OptionParser.new
|
18
|
+
|
19
|
+
op.on("-a", "--authorize-url AUTHORIZE_URL", "authorization URL", String) {|s|
|
20
|
+
authorize_url = s
|
21
|
+
}
|
22
|
+
|
23
|
+
op.on("-k", "--key CONSUMER_KEY", "consumer key for OAuth", String) {|s|
|
24
|
+
consumer_key = s
|
25
|
+
}
|
26
|
+
|
27
|
+
op.on("-s", "--secret CONSUMER_SECRET", "consumer secret for OAuth", String) {|s|
|
28
|
+
consumer_secret = s
|
29
|
+
}
|
30
|
+
|
31
|
+
op.on("-t", "--token ACCESS_TOKEN", "access tokens for OAuth", String) {|s|
|
32
|
+
access_token = s
|
33
|
+
}
|
34
|
+
|
35
|
+
op.on("-S", "--token-secret ACCESS_TOKEN_SECRET", "access token secret for OAuth", String) {|s|
|
36
|
+
access_token_secret = s
|
37
|
+
}
|
38
|
+
|
39
|
+
op.on("-X", "--request COMMAND", "Specify request command to use", String) {|s|
|
40
|
+
request_method = s.upcase
|
41
|
+
}
|
42
|
+
|
43
|
+
op.on("-H", "--header LINE", "Custom header to pass to server", String) {|s|
|
44
|
+
key, value = s.split(/: /, 2)
|
45
|
+
request_headers[key] = value
|
46
|
+
}
|
47
|
+
|
48
|
+
op.on("-d", "--data JSON", "HTTP POST data", String) {|s|
|
49
|
+
http_post_data = JSON.parse(s)
|
50
|
+
}
|
51
|
+
|
52
|
+
op.on("-r", "--retry RETRY_COUNT", "retry count of API access", Integer) {|i|
|
53
|
+
retry_max_count = i
|
54
|
+
}
|
55
|
+
|
56
|
+
op.on("-i", "--retry-interval RETRY_INTERVAL", "retry interval sec", Integer) {|i|
|
57
|
+
retry_interval = i
|
58
|
+
}
|
59
|
+
|
60
|
+
op.parse!(ARGV)
|
61
|
+
|
62
|
+
if consumer_key.nil?
|
63
|
+
$stderr.puts "consumer key is not set"
|
64
|
+
exit 1
|
65
|
+
end
|
66
|
+
|
67
|
+
if consumer_secret.nil?
|
68
|
+
$stderr.puts "consumer secret is not set"
|
69
|
+
exit 1
|
70
|
+
end
|
71
|
+
|
72
|
+
if http_post_data == "@-"
|
73
|
+
http_post_data = $stdin.read
|
74
|
+
end
|
75
|
+
|
76
|
+
url = ARGV.shift
|
77
|
+
|
78
|
+
consumer = OAuth::Consumer.new(consumer_key, consumer_secret, :site=>authorize_url)
|
79
|
+
oauth_client = OAuth::AccessToken.new(consumer, access_token, access_token_secret)
|
80
|
+
|
81
|
+
retry_count = 0
|
82
|
+
|
83
|
+
while true
|
84
|
+
case request_method
|
85
|
+
when "DELETE"
|
86
|
+
response = oauth_client.delete(url)
|
87
|
+
when "POST"
|
88
|
+
response = oauth_client.post(url, http_post_data, request_headers)
|
89
|
+
when "PUT"
|
90
|
+
response = oauth_client.put(url, http_post_data, request_headers)
|
91
|
+
else
|
92
|
+
response = oauth_client.get(url)
|
93
|
+
end
|
94
|
+
|
95
|
+
case response.code
|
96
|
+
when "200"
|
97
|
+
puts response.body
|
98
|
+
break
|
99
|
+
else
|
100
|
+
$stderr.puts "ERROR: #{response.code}, #{response.body}"
|
101
|
+
if retry_max_count <= retry_count
|
102
|
+
exit 1
|
103
|
+
else
|
104
|
+
sleep(retry_interval)
|
105
|
+
retry_count += 1
|
106
|
+
end
|
107
|
+
next
|
108
|
+
end
|
109
|
+
end
|
data/lib/oauth_token/version.rb
CHANGED
data/oauthtoken.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "oauthtoken"
|
8
8
|
spec.version = OAuthToken::VERSION
|
9
9
|
spec.authors = ["Kenji Hara"]
|
10
|
-
spec.email = ["
|
10
|
+
spec.email = ["haracane@gmail.com"]
|
11
11
|
spec.description = %q{Command to get OAuth token}
|
12
12
|
spec.summary = %q{Command to get OAuth token}
|
13
13
|
spec.homepage = ""
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
describe "bin/oareq" do
|
5
|
+
context "when send GET to https://api.twitter.com/1.1/statuses/home_timeline.json" do
|
6
|
+
it "should success" do
|
7
|
+
command = "bin/oareq" \
|
8
|
+
+ " --authorize-url #{AUTHORIZE_URL}" \
|
9
|
+
+ " --key #{CONSUMER_KEY}" \
|
10
|
+
+ " --secret #{CONSUMER_SECRET}" \
|
11
|
+
+ " --token #{ACCESS_TOKEN}" \
|
12
|
+
+ " --token-secret #{ACCESS_TOKEN_SECRET}" \
|
13
|
+
+ " https://api.twitter.com/1.1/statuses/home_timeline.json"
|
14
|
+
|
15
|
+
result = `#{command}`
|
16
|
+
|
17
|
+
result = JSON.parse(result)
|
18
|
+
result.each do |s|
|
19
|
+
expect(s["text"]).not_to be_nil
|
20
|
+
end
|
21
|
+
expect(result).to have_at_least(1).items
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "when send POST to https://api.twitter.com/1.1/direct_messages/new.json" do
|
26
|
+
it "should success" do
|
27
|
+
command = "bin/oareq" \
|
28
|
+
+ " --authorize-url #{AUTHORIZE_URL}" \
|
29
|
+
+ " --key #{CONSUMER_KEY}" \
|
30
|
+
+ " --secret #{CONSUMER_SECRET}" \
|
31
|
+
+ " --token #{ACCESS_TOKEN}" \
|
32
|
+
+ " --token-secret #{ACCESS_TOKEN_SECRET}" \
|
33
|
+
+ " --request POST" \
|
34
|
+
+ " --data '{\"screen_name\":\"oareq\",\"text\":\"oareq test\"}'" \
|
35
|
+
+ " https://api.twitter.com/1.1/direct_messages/new.json"
|
36
|
+
|
37
|
+
result = `#{command}`
|
38
|
+
|
39
|
+
result = JSON.parse(result)
|
40
|
+
expect(result["recipient_screen_name"]).to eq("oareq")
|
41
|
+
expect(result["text"]).to eq("oareq test")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,8 @@
|
|
1
1
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
2
2
|
require 'oauth_token'
|
3
|
+
|
4
|
+
AUTHORIZE_URL = "https://api.twitter.com"
|
5
|
+
CONSUMER_KEY = ENV["CONSUMER_KEY"]
|
6
|
+
CONSUMER_SECRET = ENV["CONSUMER_SECRET"]
|
7
|
+
ACCESS_TOKEN = ENV["ACCESS_TOKEN"]
|
8
|
+
ACCESS_TOKEN_SECRET = ENV["ACCESS_TOKEN_SECRET"]
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oauthtoken
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Kenji Hara
|
@@ -9,51 +15,72 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2013-11-
|
18
|
+
date: 2013-11-11 00:00:00 Z
|
13
19
|
dependencies:
|
14
20
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
16
|
-
|
21
|
+
name: oauth
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
17
25
|
requirements:
|
18
26
|
- - ~>
|
19
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 1
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 4
|
32
|
+
- 7
|
20
33
|
version: 0.4.7
|
21
|
-
name: oauth
|
22
|
-
prerelease: false
|
23
|
-
requirement: *id001
|
24
|
-
- !ruby/object:Gem::Dependency
|
25
34
|
type: :development
|
26
|
-
version_requirements:
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
27
41
|
requirements:
|
28
42
|
- - ~>
|
29
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 9
|
45
|
+
segments:
|
46
|
+
- 1
|
47
|
+
- 3
|
30
48
|
version: "1.3"
|
31
|
-
name: bundler
|
32
|
-
prerelease: false
|
33
|
-
requirement: *id002
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
49
|
type: :development
|
36
|
-
version_requirements:
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rake
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
37
56
|
requirements:
|
38
|
-
-
|
39
|
-
- ">="
|
57
|
+
- - ">="
|
40
58
|
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
41
62
|
version: "0"
|
42
|
-
name: rake
|
43
|
-
prerelease: false
|
44
|
-
requirement: *id003
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
63
|
type: :development
|
47
|
-
version_requirements:
|
48
|
-
|
49
|
-
- *id004
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
50
66
|
name: rspec
|
51
67
|
prerelease: false
|
52
|
-
requirement:
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
type: :development
|
78
|
+
version_requirements: *id004
|
53
79
|
description: Command to get OAuth token
|
54
80
|
email:
|
55
|
-
-
|
81
|
+
- haracane@gmail.com
|
56
82
|
executables:
|
83
|
+
- oareq
|
57
84
|
- oatok
|
58
85
|
extensions: []
|
59
86
|
|
@@ -67,36 +94,51 @@ files:
|
|
67
94
|
- LICENSE.txt
|
68
95
|
- README.md
|
69
96
|
- Rakefile
|
97
|
+
- bin/oareq
|
70
98
|
- bin/oatok
|
71
99
|
- lib/oauth_token.rb
|
100
|
+
- lib/oauth_token/command/oareq.rb
|
72
101
|
- lib/oauth_token/command/oatok.rb
|
73
102
|
- lib/oauth_token/version.rb
|
74
103
|
- oauthtoken.gemspec
|
104
|
+
- spec/lib/oauth_token/command/oareq_spec.rb
|
75
105
|
- spec/oauth_token_spec.rb
|
76
106
|
- spec/spec_helper.rb
|
77
107
|
homepage: ""
|
78
108
|
licenses:
|
79
109
|
- MIT
|
80
|
-
metadata: {}
|
81
|
-
|
82
110
|
post_install_message:
|
83
111
|
rdoc_options: []
|
84
112
|
|
85
113
|
require_paths:
|
86
114
|
- lib
|
87
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
88
117
|
requirements:
|
89
|
-
-
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
121
|
+
segments:
|
122
|
+
- 0
|
123
|
+
version: "0"
|
90
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
91
126
|
requirements:
|
92
|
-
-
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 3
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
version: "0"
|
93
133
|
requirements: []
|
94
134
|
|
95
135
|
rubyforge_project:
|
96
|
-
rubygems_version:
|
136
|
+
rubygems_version: 1.8.25
|
97
137
|
signing_key:
|
98
|
-
specification_version:
|
138
|
+
specification_version: 3
|
99
139
|
summary: Command to get OAuth token
|
100
140
|
test_files:
|
141
|
+
- spec/lib/oauth_token/command/oareq_spec.rb
|
101
142
|
- spec/oauth_token_spec.rb
|
102
143
|
- spec/spec_helper.rb
|
144
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA512:
|
3
|
-
metadata.gz: 095fd3ee4e21ae7de17002d4f8f1009708ad85ffce5300b5dadffe287e6b9218732815955ac7ffd4914943218f64c61a0bbcd3e6d77f84c51f07663a66a0d9b0
|
4
|
-
data.tar.gz: 9f546e6284ea98925fdf13e872e4937cce512f00c73aa6afa550b0c6cdab38dc925682c5ab83de66bae40fe413728a22079e8c30a40e2bbca98c472de10ccd9f
|
5
|
-
SHA1:
|
6
|
-
metadata.gz: 4b8513faa5a88a4d3ce6955358d2c1d985af6266
|
7
|
-
data.tar.gz: 7af193782f35ffdef27b579af837ca442163eba6
|