Class: PPC::API::Baidu
- Inherits:
-
Object
show all
- Extended by:
- PPC::API
- Defined in:
- lib/ppc/api/baidu.rb,
lib/ppc/api/shenma.rb,
lib/ppc/api/baidu/bulk.rb,
lib/ppc/api/baidu/plan.rb,
lib/ppc/api/baidu/rank.rb,
lib/ppc/api/baidu/group.rb,
lib/ppc/api/baidu/report.rb,
lib/ppc/api/baidu/account.rb,
lib/ppc/api/baidu/keyword.rb,
lib/ppc/api/baidu/creative.rb,
lib/ppc/api/baidu/phone_new_creative.rb
Defined Under Namespace
Classes: Account, Bulk, Creative, Group, Keyword, Phone, Plan, Rank, Report
Constant Summary
collapse
- @@debug =
false
Class Method Summary
collapse
Methods included from PPC::API
debug_off, debug_on, is_no_quota, make_type, process, request, request_http_body, request_http_header, request_uri, reverse_type
Class Method Details
.debug_off ⇒ Object
11
12
13
|
# File 'lib/ppc/api/shenma.rb', line 11
def self.debug_off
@@debug = false
end
|
.debug_on ⇒ Object
7
8
9
|
# File 'lib/ppc/api/shenma.rb', line 7
def self.debug_on
@@debug = true
end
|
.process(response, key, &func) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/ppc/api/baidu.rb', line 22
def self.process(response, key, &func)
'''
Process Http response. If operation successes, return value of given keys.
You can process the result using function &func, or do nothing by passing
block {|x|x}
===========================
@Output: resultType{ desc: boolean, failure: Array, result: Array }
failure is the failures part of response\'s header
result is the processed response body.
'''
result = {}
result[:succ] = response['header']['desc'] =='success'
result[:failure] = response['header']['failures']
if !response['body'].nil? && response['body'][key]
result[:result] = func[ response['body'][key] ]
end
result[:no_quota] = is_no_quota(response['header']['failures'], '8501')
return result
end
|
.request(auth, path, params = {}) ⇒ Object
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
|
# File 'lib/ppc/api/shenma.rb', line 15
def self.request( auth, path, params = {} )
'''
request should return whole http response including header
'''
uri = URI("https://e.sm.cn#{path}")
http_body = {
header: {
username: auth[:username],
password: auth[:password],
token: auth[:token],
target: auth[:tarvget]
},
body: params
}.to_json
= {
'Content-Type' => 'application/json; charset=UTF-8'
}
http = Net::HTTP.new(uri.host, 443)
http.set_debug_output( $stdout ) if @@debug
http.use_ssl = true
response = http.post(uri.path, http_body, )
response = JSON.parse( response.body )
end
|
.request_uri(param) ⇒ Object
18
19
20
|
# File 'lib/ppc/api/baidu.rb', line 18
def self.request_uri(param)
URI("https://api.baidu.com/json/sms/v3/#{param[:service]}Service/#{param[:method]}")
end
|
.reverse_type(types, maps = @map) ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/ppc/api/baidu.rb', line 43
def self.reverse_type( types, maps = @map )
types = [ types ] unless types.is_a? Array
types.map do |item|
maps.each{|m| item.filter_and_replace_key(m[0],m[1].to_s)}
item
end
end
|