PHP Betfair Free Access API,如何构建 APIRequestHeader 并调用任何方法


PHP Betfair Free Access API, how to build APIRequestHeader & call any method?

我正在尝试编写一个简单的PHP客户端,通过Free Access API从Betfair获取一些数据 http://bdp.betfair.com/?option=com_content&task=view&id=33&Itemid=62

我可以登录并获取会话令牌,这样

$wsdl = 'https://api.betfair.com/global/v3/BFGlobalService.wsdl';
$soapClient = new SoapClient($wsdl); 
try {
    $ap_param = array(
        'request' => 
            array(
                'username' => 'my_username',
                'password' => 'my_password',
                'productId' => '82',    
                'ipAddress' => '',
                'locationId' => '',
                'vendorSoftwareId' => '',
            ),
        );  
    $response = $soapClient->__call("login", array($ap_param));
...

$response 是一个包含 sessionToken 参数的对象

但是经过几次尝试,恐怕我发送的 APIRequestHeader 参数 (http://bdp.betfair.com/docs/) 格式不正确,导致对任何调用(例如 getAllEventTypes)的响应总是返回相同的:NO_SESSION

一次尝试...

$ap_param = array(
    'request' => 
        array(
            'header' => array(
                'session_token' => $response->Result->header->sessionToken,
                'clientStamp' => 0,
            ),          
        ),
    );      

再试一次...

$ap_param = array(
    'request' => 
        array(
            'session_token' => $response->Result->header->sessionToken,
            'clientStamp' => 0,
        ),
    ); 

还有很多其他的尝试...但

$response = $soapClient->__call("getAllEventTypes", array($ap_param));

$response总是相同的

stdClass Object
(
    [Result] => stdClass Object
        (
            [header] => stdClass Object
                (
                    [errorCode] => NO_SESSION
                    [minorErrorCode] => 
                    [sessionToken] => 
                    [timestamp] => 2013-11-09T08:41:01.015Z
                )
            [eventTypeItems] => 
            [minorErrorCode] => 
            [errorCode] => API_ERROR
        )
)

这里有人遇到过同样的问题吗?

那里

有愚蠢的错别字错误...

session_token应该是会话令牌

$ap_param = array(
    'request' => 
        array(
            'header' => array(
                'sessionToken' => $response->Result->header->sessionToken,
                'clientStamp' => 0,
            ),          
        ),
    );  
相关文章:
  • 没有找到相关文章