P
Peter Aszkenasy
Hi. I'm trying to use the Betfair API with Ruby:-
http://bdp.betfair.com/exchdevelopers.php
Basically, I can login to the service but I can't do anything else - I
keep getting a no session error? I can do something very similar below
in php and it works fine so I think my arguments are correct. However,I
would like to stick to ruby. I've seen some other posts on this but I'm
not to clear. I'm using Ruby 1.8.6 (2007-09-24 patchlevel 111) and this
is my irb session:-
...
irb(main):032:0> bfsoapclient = SOAP::WSDLDriverFactory.new( wsdl
).create_rpc_driverignored attr: {}abstract
ignored attr: {}nillable
ignored attr: {}mixed
=>
#<SOAP::RPC:
river:#<SOAP::RPC:
roxy:https://api.betfair.com/global/v3/BFGlobalService>>
irb(main):033:0> bflogin = bfsoapclient.login
request=>logindetails)
=> #<SOAP::Mapping::Object:0x..fdbd49328
{http://www.betfair.com/publicapi/v3/BFGlobalService/}Result=#<SOAP::Mapping::Object:0x..fdbd491fc
{}header=#<SOAP::Mapping::Object:0x..fdbd49026 {}errorCode="OK"
{}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd48900>
{}sessionToken="MMrLImJigs0OO0u3K5gty8qSPIbwFaZwRyzzLnmOEjo="
{}timestamp="2007-10-10T12:58:04.062Z"> {}currency="GBP"
{}errorCode="OK" {}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd46b3c>
{}validUntil="0001-01-01T00:00:00.000Z">>
irb(main):034:0> apiRequestHeader = { :clientstamp => 0,:sessionToken =>
bflogin.result.header.sessionToken }
=> {:clientstamp=>0,
:sessionToken=>"MMrLImJigs0OO0u3K5gty8qSPIbwFaZwRyzzLnmOEjo="}
irb(main):035:0> events = bfsoap.getActiveEventTypes
request =>
{:header=>apiRequestHeader})
=> #<SOAP::Mapping::Object:0x..fdbd3689a
{http://www.betfair.com/publicapi/v3/BFGlobalService/}Result=#<SOAP::Mapping::Object:0x..fdbd3671e
{}header=#<SOAP::Mapping::Object:0x..fdbd36534 {}errorCode="NO_SESSION"
{}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd35d82>
{}sessionToken=#<SOAP::Mapping::Object:0x..fdbd3585a>
{}timestamp="2007-10-10T13:00:25.199Z">
{}eventTypeItems=#<SOAP::Mapping::Object:0x..fdbd34996>
{}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd344b4>
{}errorCode="API_ERROR">>
http://bdp.betfair.com/exchdevelopers.php
Basically, I can login to the service but I can't do anything else - I
keep getting a no session error? I can do something very similar below
in php and it works fine so I think my arguments are correct. However,I
would like to stick to ruby. I've seen some other posts on this but I'm
not to clear. I'm using Ruby 1.8.6 (2007-09-24 patchlevel 111) and this
is my irb session:-
...
irb(main):032:0> bfsoapclient = SOAP::WSDLDriverFactory.new( wsdl
).create_rpc_driverignored attr: {}abstract
ignored attr: {}nillable
ignored attr: {}mixed
=>
#<SOAP::RPC:
irb(main):033:0> bflogin = bfsoapclient.login
=> #<SOAP::Mapping::Object:0x..fdbd49328
{http://www.betfair.com/publicapi/v3/BFGlobalService/}Result=#<SOAP::Mapping::Object:0x..fdbd491fc
{}header=#<SOAP::Mapping::Object:0x..fdbd49026 {}errorCode="OK"
{}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd48900>
{}sessionToken="MMrLImJigs0OO0u3K5gty8qSPIbwFaZwRyzzLnmOEjo="
{}timestamp="2007-10-10T12:58:04.062Z"> {}currency="GBP"
{}errorCode="OK" {}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd46b3c>
{}validUntil="0001-01-01T00:00:00.000Z">>
irb(main):034:0> apiRequestHeader = { :clientstamp => 0,:sessionToken =>
bflogin.result.header.sessionToken }
=> {:clientstamp=>0,
:sessionToken=>"MMrLImJigs0OO0u3K5gty8qSPIbwFaZwRyzzLnmOEjo="}
irb(main):035:0> events = bfsoap.getActiveEventTypes
{:header=>apiRequestHeader})
=> #<SOAP::Mapping::Object:0x..fdbd3689a
{http://www.betfair.com/publicapi/v3/BFGlobalService/}Result=#<SOAP::Mapping::Object:0x..fdbd3671e
{}header=#<SOAP::Mapping::Object:0x..fdbd36534 {}errorCode="NO_SESSION"
{}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd35d82>
{}sessionToken=#<SOAP::Mapping::Object:0x..fdbd3585a>
{}timestamp="2007-10-10T13:00:25.199Z">
{}eventTypeItems=#<SOAP::Mapping::Object:0x..fdbd34996>
{}minorErrorCode=#<SOAP::Mapping::Object:0x..fdbd344b4>
{}errorCode="API_ERROR">>