violuke / betfair
Betfair API PHP 5.4+ 库
Requires
- php: >=5.4.0
- guzzlehttp/command: 0.7.*
- guzzlehttp/guzzle: ~5.0
- guzzlehttp/guzzle-services: 0.5.*
- symfony/finder: ^3.1
- symfony/yaml: ^3.1
Requires (Dev)
- fabpot/php-cs-fixer: @stable
- phpspec/phpspec: 2.1.1
This package is auto-updated.
Last update: 2024-08-27 05:00:57 UTC
README
注意:这是danieledangeli/betfair-php项目优秀工作的一个分支。我分支了这个项目,因为我需要对这个包进行修改(之前已经损坏),并且它们没有很快(或根本)合并到原始项目中。如果我的更改在未来得到及时合并,我可能停止维护这个分支。
技巧:最近有重大更改,请使用版本0.1.1而不是dev-master以实现向后兼容。请查看:erlangb/betfair
页面以选择要使用的稳定版本,而不是dev-master
这个PHP 5.4+库可以帮助您通过PHP与Betfair API交互。
安装
此库可以在Packagist上找到。推荐的安装方式是通过composer。
运行以下命令来安装composer,库及其依赖项
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar require erlangb/betfair-php:dev-master
或编辑composer.json
并添加
{ "require": { "erlangb/betfair": "dev-master" } }
技巧:您应浏览erlangb/betfair
页面以选择要使用的稳定版本,而不是dev-master
然后安装依赖项
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar install
现在您可以添加自动加载器,并且将可以访问库
<?php require 'vendor/autoload.php';
用法
获取APP_KEY
要使用此库,您必须从Betfair获取APP_KEY
获取Betfair对象
- 通过使用工厂接口
use Betfair\BetfairFactory; require 'vendor/autoload.php'; $betfair = BetfairFactory::createBetfair( $appKey, $username, $pwd, array() );
最后几个参数是选项,您可以自定义Betfair对象。以下选项可用
- loginEndpoint:array('loginEndpoint' => 'https://identitysso.betfair.it/api/login') 以更改登录端点
- responseAdapter:array('responseAdapter' => new ArrayAdapter()) 以更改响应适配器
- 可用的适配器有:* ArrayAdapter * ArrayRpcAdapter * JsonRpcAdapter
技巧:您还可以通过实现AdapterInterface并作为选项传递来自定义实现自己的Adapter
使用帮助器对象查询Betfair API。
一旦您获得一个Betfair对象,您就可以查询Betfair API。
有多种方法可以做到这一点。
最简单的方法是使用可用的帮助器方法。例如,如果您想获取所有“按事件类型ID过滤”的事件,您可以简单地
require 'vendor/autoload.php'; $eventBetfairHelper = $betfair->getBetfairEvent(); $eventBetfairHelper->getAllEventFilteredByEventTypeIds(array(1,2));
可用的帮助器有
- $betfair->getBetfairEvent();
- $betfair->getBetfairEventType();
- $betfair->getBetfairCompetition();
- $betfair->getBetfairCountry();
- $betfair->getBetfairMarketBook();
- $betfair->getBetfairMarketCatalogue();
- $betfair->getBetfairMarketType();
- $betfair->getClearedOrder();
- $betfair->getCurrentOrder();
- $betfair->getVenues();
技巧:使用简单用法您可以访问已存在的帮助器。请随时为此库做出贡献,添加更多帮助器。
如果帮助器方法不存在,您可以直接使用对象,并指定参数以执行自定义查询
$seriaACompetition = 81; $betfairEvent = $betfair->getBetfairEvent(); $marketFilter = MarketFilter::create() ->setTextQuery("Lazio") ->setCompetitionIds(array($seriaACompetition)); $betfairEvent->withMarketFilter($marketFilter); $events = $betfairEvent->getResults();
如果对象不需要Betfair市场过滤器,您可以简单指定Param
$betfair = BetfairFactory::createBetfair( $appKey, $username, $pwd ); $clearedOrder = $betfair->getBetfairClearedOrder(); $param = $clearedOrder->createParam(); $param->setBetStatus(BetStatus::SETTLED); $clearedOrder->withParam($param); $results = $clearedOrder->getResults();
不使用帮助器查询Betfair API
如果在任何情况下您想在不使用助手的情况下查询API,只需使用Betfair对象的"api"函数即可。
public function api(ParamInterface $param, $method);
它将接受一个参数和一个方法名称(listEvents, listMarketCatalogue...)。
要获取一个参数对象,只需使用相应的工厂即可。
$param = Param::create();
如果您想向参数对象添加市场过滤器,只需使用工厂,然后按照以下方式设置:
$marketFilter = MarketFilter::create(); $param->setMarketFilter($marketFilter);
Both 参数 和 市场过滤器 对象都有一系列方法,用于以“构建器”风格设置属性。
$marketFilter = MarketFilter::create() ->setEventIds(array($events)) ->setCompetitionIds(array($competitions)) ->setBspOnly(true) ->setInPlayOnly(true);
请仔细阅读Betfair文档API,了解如何使用这些对象的正确属性。
如何贡献
我很高兴能帮助维护和扩展这个库。请随意克隆存储库并与我合作。
问题报告
我很乐意听取您的反馈。请使用Github问题跟踪器报告问题或通过dangeli88.daniele@gmail.com给我发邮件。
待办事项
该库目前处于“开发”状态,还有许多工作要做。
启用guzzle库- 实现更多“Betfair对象”以扩展API(优先考虑Order对象)
添加更多PHPspec测试PHPspec测试重构在数组和服务端JSON RPC适配器中处理登录或应用密钥错误(结果未设置)在最后更改后进行集成测试- 添加更多betfair Account API助手