File: sampleclient.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 (60 lines) | stat: -rwxr-xr-x 2,059 bytes parent folder | download | duplicates (5)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env ruby

# This client sample is contributed by Garry Dolley at soap4r ML.
# You need to generate default.rb and defaultDriver.rb by wsdl2ruby.rb tool.
#
# % ruby wsdl2ruby.rb --wsdl http://developer.ebay.com/webservices/latest/eBaySvc.wsdl --type client --force
#
# You may need to get eBaySvc.wsdl and patch it with eBaySvc.wsdl.diff in the
# same directory to avoid eBaySvc.wsdl's namespace usage problem.

require 'defaultDriver.rb'
require 'soap/header/simplehandler'

class RequesterCredentialsHandler < SOAP::Header::SimpleHandler
  HeaderName    = XSD::QName.new('urn:ebay:apis:eBLBaseComponents', 'RequesterCredentials')
  Credentials   = XSD::QName.new('urn:ebay:apis:eBLBaseComponents', 'Credentials')

  EbayAuthToken = XSD::QName.new(nil, 'eBayAuthToken')
  DevId         = XSD::QName.new(nil, 'DevId')
  AppId         = XSD::QName.new(nil, 'AppId')
  AuthCert      = XSD::QName.new(nil, 'AuthCert')

  def initialize(eBayAuthToken, devId, appId, authCert)
    super(HeaderName)
    @token, @devId, @appId, @cert = eBayAuthToken, devId, appId, authCert
  end

  def on_simple_outbound
    { EbayAuthToken => @token,
      Credentials => { DevId => @devId, AppId => @appId, AuthCert => @cert } }
  end
end

callName  = 'GeteBayOfficialTime'
siteId    = '0'
appId     = '__appid__'
devId     = '__devid__'
certId    = '__certid__'
version   = '433'

authToken = '__authtoken__'

endpoint_url = 'https://api.sandbox.ebay.com/wsapi'

request_url  = endpoint_url + '?callname=' + callName +
                              '&siteid=' + siteId +
                              '&appid=' + appId +
                              '&version=' + version +
                              '&routing=default'

service = EBayAPIInterface.new(request_url)
service.headerhandler << RequesterCredentialsHandler.new(authToken,
devId, appId, certId)

request = GeteBayOfficialTimeRequestType.new()
request.version = version

response = service.geteBayOfficialTime(request)

puts response.timestamp