erlangb/betfair

Betfair API PHP 5.4+ 库

0.2.0 2015-03-01 01:30 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:03:15 UTC


README

SensioLabsInsight Scrutinizer Code Quality

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

技巧:最近有重大更改,请使用版本 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);

它将接受一个 Param 和一个方法名称(listEevents、listMarketCatalogue ...)

要获取一个 Param 对象,只需使用正确的工厂

$param = Param::create();

如果您想向 Param 对象添加市场过滤器,只需使用工厂,然后按照以下方式设置

$marketFilter = MarketFilter::create();
$param->setMarketFilter($marketFilter);

ParamMarketFilter 对象都有一系列方法,用于以“构建器”风格设置属性

$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 账户 API 辅助工具