File: client.rb

package info (click to toggle)
ruby-soap4r 2.0.5-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,032 kB
  • sloc: ruby: 52,729; xml: 266; sh: 42; javascript: 20; makefile: 13; perl: 10
file content (40 lines) | stat: -rw-r--r-- 1,221 bytes parent folder | download | duplicates (6)
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
# To generate default.rb, do like this;
# % wsdl2ruby.rb --wsdl "https://adwords.google.com/api/adwords/v2/CampaignService?WSDL" --classdef --force

require 'soap/wsdlDriver'
require 'soap/header/simplehandler'
require 'default'

class HeaderHandler < SOAP::Header::SimpleHandler
  def initialize(tag, value)
    super(XSD::QName.new(nil, tag))
    @tag = tag
    @value = value
  end

  def on_simple_outbound
    @value
  end
end

wsdl = 'https://adwords.google.com/api/adwords/v2/CampaignService?WSDL'

client = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver

client.wiredump_dev = STDOUT  # Log high-level activity
client.wiredump_file_base = "log"  # Log SOAP request and response

# My Client Center manager account
client.headerhandler << HeaderHandler.new('email', 'email@example.com')

client.headerhandler << HeaderHandler.new('password', 'mypassword')
client.headerhandler << HeaderHandler.new('useragent', 'soap4r test')
client.headerhandler << HeaderHandler.new('token', 'XYZ1234567890')

# (Optional) Any client account you manage
client.headerhandler << HeaderHandler.new('clientEmail', 'abc@mail.com')

camplist = client.call("getAllAdWordsCampaigns",
  GetAllAdWordsCampaigns.new(123))

p camplist