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
|