leamare/simple-opendota-php

用于与 OpenDota API 交互的简单类接口

1.1.0 2020-11-20 18:51 UTC

This package is auto-updated.

Last update: 2024-09-29 04:03:34 UTC


README

API 版本:18.0.0

为 PHP 提供简单的 OpenDota API 支持。

处理 API 冷却时间(避免被封禁)、API 密钥使用、OpenDota 各种实例的使用、命令行报告。

这是仅同步版本,方法命名奇特。它旨在用于简单的 PHP 脚本(首先是命令行脚本)。对于为 ReactPHP 制作的异步版本,请查找 reactive-opendota-php。

注意:它没有实现 /feed 端点。该端点通常不稳定,并且它还需要 HTTP 流支持,这在与同步 PHP 不兼容。

要求

  • PHP >=5.3.0
  • PHP 中的 cURL

您可以使用 Composer 检查所有要求。

如何使用

  1. simple_opendota.php 包含到您的项目中
  2. 创建 new odota_api() 实例。

就这些。您可以通过 odota_api 方法与 OpenDota API 交互。每个方法都返回由 JSON 响应构成的关联数组。

您可以在 ENDPOINTS.md 中找到方法列表及其 API 对应项。

重要提示

额外的 odota_api() 参数

完整版本:odota_api($cli_report_status, $hostname, $cooldown, $api_key)

  • $cli_report_status:(bool) 将每个动作报告到控制台。默认:false
  • $hostname:(string) 您将要与之交互的 OpenDota API 实例的地址。默认:"https://api.opendota.com/api/"
  • $cooldown:(int) 请求之间的 API 冷却时间(以毫秒为单位)。默认:1000200 如果指定了 API 密钥(大约每秒一次)
  • $api_key:(string) OpenDota API 密钥。默认:无

如果您需要跳过其中一个参数,可以将其留空以使用默认值。

工作模式

每个方法的最后一个参数是 $mode。它可能有以下三个值之一

  • 0:安全模式,等待直到 API 准备就绪(默认)
  • 1:强制模式,不等待 API 冷却时间
  • -1:快速模式,如果 API 准备就绪则丢弃请求

设置自定义回调

  • set_get_callback(function($url, $data) {}) 仅适用于 GET 请求
  • set_post_callback(function($url, $data) {}) 仅适用于 POST 请求
  • set_request_callback(function($url, $data, $post) {}) 适用于所有请求(推荐)

具有多个参数的 API 端点

具有多个 GET 参数的 API 端点(例如,/players/{account_id}/matches)使用附加参数

  • $params:(array) 参数数组。每个键是参数的名称,每个值是它的值。

它是这些端点方法的第二个到最后一个参数。参数名称直接转换为 API 端点,因此如果您需要它们,只需检查 OpenDota 文档并使用相同的名称即可。

要查看哪些方法使用 $params 数组以及哪些没有,请检查 ENDPOINTS.md(或您也可以检查代码本身)。

示例

require "simple_opendota.php";

$od = new \SimpleOpenDotaPHP\odota_api();

$res = $od->match(1234567902);

$od = new odota_api(true);

$res = $od->player(123123123);

$od = new odota_api(true, "localhost", 100);

$res = $od->live();

$od->set_get_callback(function($url, $data) {
  return $url.' '.json_encode($data);
});

$od->set_request_callback(function($url, $data, $post) {
  return 'R '.$url.' '.json_encode($data);
});