topsdk 0.0.3 → 0.0.4
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.
- metadata +4 -13
- data/.gitignore +0 -4
- data/Gemfile +0 -4
- data/Rakefile +0 -1
- data/init.rb +0 -2
- data/lib/config/taobao.yml +0 -24
- data/lib/topsdk/client.rb +0 -67
- data/lib/topsdk/version.rb +0 -3
- data/lib/topsdk.rb +0 -62
- data/topsdk.gemspec +0 -26
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: topsdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-27 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nestful
|
16
|
-
requirement: &
|
16
|
+
requirement: &70238391476300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70238391476300
|
25
25
|
description: Simple Taobao API client for Ruby
|
26
26
|
email:
|
27
27
|
- howl.wong@gmail.com
|
@@ -30,16 +30,7 @@ extensions: []
|
|
30
30
|
extra_rdoc_files:
|
31
31
|
- README.rdoc
|
32
32
|
files:
|
33
|
-
- .gitignore
|
34
|
-
- Gemfile
|
35
33
|
- README.rdoc
|
36
|
-
- Rakefile
|
37
|
-
- init.rb
|
38
|
-
- lib/config/taobao.yml
|
39
|
-
- lib/topsdk.rb
|
40
|
-
- lib/topsdk/client.rb
|
41
|
-
- lib/topsdk/version.rb
|
42
|
-
- topsdk.gemspec
|
43
34
|
homepage: ''
|
44
35
|
licenses: []
|
45
36
|
post_install_message:
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
data/init.rb
DELETED
data/lib/config/taobao.yml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
prod: &prod
|
2
|
-
api_key: 12012322
|
3
|
-
secret_key: 42ab2d12a5bea25d1bc06ccd23123121daf
|
4
|
-
auth_url: https://oauth.taobao.com/authorize
|
5
|
-
token_url: https://oauth.taobao.com/token
|
6
|
-
rest_url: http://gw.api.taobao.com/router/rest
|
7
|
-
callback_url: http://yourdomain.com/auth/callback
|
8
|
-
|
9
|
-
sandbox: &sandbox
|
10
|
-
<<: *prod
|
11
|
-
secret_key: sandbox9ffd79873a7ae0e01fefed97c
|
12
|
-
auth_url: https://oauth.tbsandbox.com/authorize
|
13
|
-
token_url: https://oauth.tbsandbox.com/token
|
14
|
-
rest_url: http://gw.api.tbsandbox.com/router/rest
|
15
|
-
callback_url: http://0.0.0.0:3000/auth/callback
|
16
|
-
|
17
|
-
development:
|
18
|
-
<<: *sandbox
|
19
|
-
|
20
|
-
test:
|
21
|
-
<<: *sandbox
|
22
|
-
|
23
|
-
production:
|
24
|
-
<<: *prod
|
data/lib/topsdk/client.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require 'nestful'
|
3
|
-
require 'digest/md5'
|
4
|
-
require 'pp'
|
5
|
-
|
6
|
-
module Topsdk
|
7
|
-
class Client
|
8
|
-
DEBUG = false
|
9
|
-
|
10
|
-
def initialize(params={})
|
11
|
-
@params = { # 淘宝参数
|
12
|
-
:app_key => ENV['TAOBAO_APP_KEY'],
|
13
|
-
:format => :json,
|
14
|
-
:v => '2.0',
|
15
|
-
:timestamp => timestamp
|
16
|
-
}
|
17
|
-
@params.merge!(params.clone) unless params.empty? # 參數合併
|
18
|
-
@params[:sign] = generate_sign(@params)
|
19
|
-
pp @params if DEBUG
|
20
|
-
end
|
21
|
-
|
22
|
-
def get(url=ENV['TAOBAO_REST_URL'])
|
23
|
-
request = Nestful::Request.new(url, ({:method => :get, :format => :json, :params => @params}))
|
24
|
-
@result = request.execute
|
25
|
-
parse
|
26
|
-
end
|
27
|
-
|
28
|
-
def post(url=ENV['TAOBAO_REST_URL'])
|
29
|
-
request = Nestful::Request.new(url, ({:method => :post, :format => :form, :params => @params}))
|
30
|
-
pp request.to_s
|
31
|
-
pp @params.to_s
|
32
|
-
@result = request.execute
|
33
|
-
@result = JSON.parse(@result)
|
34
|
-
parse
|
35
|
-
end
|
36
|
-
|
37
|
-
def parse # 簡單解析一下
|
38
|
-
return false unless @result.is_a?(Hash)
|
39
|
-
case
|
40
|
-
when @result.has_key?(response_key)
|
41
|
-
pp response_key if DEBUG
|
42
|
-
result = @result[response_key]
|
43
|
-
when @result.has_key?('error_response')
|
44
|
-
@result['error_response']['msg']
|
45
|
-
else
|
46
|
-
@result
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def generate_sign(params={})
|
51
|
-
rand = ENV['TAOBAO_APP_SECRET'] + params.sort.flatten.join
|
52
|
-
Digest::MD5.hexdigest(rand).upcase! # 數字簽名
|
53
|
-
end
|
54
|
-
|
55
|
-
def response_key # 操作結果鍵
|
56
|
-
@params[:method][7..-1].gsub(/\./, '_') + "_response" unless @params[:method].nil?
|
57
|
-
end
|
58
|
-
|
59
|
-
def root_key # 獲取對象的鍵
|
60
|
-
response_key.split('_')[0] unless @params[:method].nil?
|
61
|
-
end
|
62
|
-
|
63
|
-
def timestamp # 时间戳
|
64
|
-
Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
data/lib/topsdk/version.rb
DELETED
data/lib/topsdk.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
require 'topsdk/version'
|
2
|
-
require 'topsdk/client'
|
3
|
-
|
4
|
-
RAILS_ENV = PADRINO_ENV if defined?(PADRINO_ENV)
|
5
|
-
|
6
|
-
# 賦值
|
7
|
-
def apply_settings
|
8
|
-
@settings = YAML.load_file(config_file)
|
9
|
-
@settings = defined?(RAILS_ENV) ? @settings[RAILS_ENV] : @settings['development']
|
10
|
-
ENV['TAOBAO_APP_KEY'] = @settings['api_key'].to_s
|
11
|
-
ENV['TAOBAO_APP_SECRET'] = @settings['secret_key']
|
12
|
-
ENV['TAOBAO_AUTH_URL'] = @settings['auth_url']
|
13
|
-
ENV['TAOBAO_TOKEN_URL'] = @settings['token_url']
|
14
|
-
ENV['CALLBACK_URL'] = @settings['callback_url']
|
15
|
-
ENV['TAOBAO_REST_URL'] = @settings['rest_url']
|
16
|
-
end
|
17
|
-
|
18
|
-
def config_file
|
19
|
-
# 解析配置文件
|
20
|
-
yml_file = File.expand_path(File.join('.', 'config', 'taobao.yml'))
|
21
|
-
unless File.exist?(yml_file)
|
22
|
-
File.expand_path(File.join('config', 'taobao.yml'), File.dirname(__FILE__))
|
23
|
-
else
|
24
|
-
yml_file
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
apply_settings
|
29
|
-
|
30
|
-
module Topsdk
|
31
|
-
class << self
|
32
|
-
|
33
|
-
def get_with(joined_params = {})
|
34
|
-
Client.new(joined_params).get
|
35
|
-
end
|
36
|
-
|
37
|
-
def post_with(joined_params = {})
|
38
|
-
Client.new(joined_params).post
|
39
|
-
end
|
40
|
-
|
41
|
-
def authorize_url
|
42
|
-
"#{ENV['TAOBAO_AUTH_URL']}?response_type=code&client_id=#{ENV['TAOBAO_APP_KEY']}&redirect_uri=#{ENV['CALLBACK_URL']}"
|
43
|
-
end
|
44
|
-
|
45
|
-
def token(code)
|
46
|
-
joined_params = token_params(code)
|
47
|
-
res = Client.new(joined_params).post(ENV['TAOBAO_TOKEN_URL'])
|
48
|
-
res['access_token']
|
49
|
-
end
|
50
|
-
|
51
|
-
def token_params(code)
|
52
|
-
{ # 淘宝参数
|
53
|
-
:grant_type => 'authorization_code',
|
54
|
-
:code => code,
|
55
|
-
:client_id => ENV['TAOBAO_APP_KEY'],
|
56
|
-
:client_secret => ENV['TAOBAO_APP_SECRET'],
|
57
|
-
:redirect_uri => ENV['CALLBACK_URL'],
|
58
|
-
}
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|
data/topsdk.gemspec
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "topsdk/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "topsdk"
|
7
|
-
s.version = Topsdk::VERSION
|
8
|
-
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Howl王"]
|
10
|
-
s.email = ["howl.wong@gmail.com"]
|
11
|
-
s.homepage = ""
|
12
|
-
s.summary = "Taobao API client"
|
13
|
-
s.description = %q{Simple Taobao API client for Ruby}
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
"README.rdoc"
|
16
|
-
]
|
17
|
-
|
18
|
-
s.rubyforge_project = "topsdk"
|
19
|
-
|
20
|
-
s.files = `git ls-files`.split("\n")
|
21
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
-
s.require_paths = ["lib"]
|
24
|
-
|
25
|
-
s.add_runtime_dependency "nestful"
|
26
|
-
end
|