我正在尝试编写一个简单的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,
),
),
);