dant89/smite-api-php-client

Smite API 的轻量级 PHP 客户端

1.2.0 2020-03-06 14:35 UTC

This package is auto-updated.

Last update: 2024-09-07 00:42:45 UTC


README

Smite logo

Smite API PHP 客户端

Latest Stable Version Github Issues

Smite 开发者 API 的轻量级 PHP 客户端。

安装

要安装,请在项目的根目录中运行 composer require dant89/smite-api-php-client,或将 dant89/smite-api-php-client 添加到您的 composer.json 文件中。

"require": {
    "dant89/smite-api-php-client": REPLACE_WITH_VERSION
}

Smite 开发者 API 文档

要了解更多关于 Smite 开发者 API 的功能,请阅读官方文档

Smite 开发者 API 访问

Smite 开发者 API 需要您首先完成此表格以申请凭据。

如果您的申请被接受,您将收到用于访问 API 的自定义凭据。

  • Smite

用法

在创建此客户端实例时使用您提供的 DevIdAuthKey

use Dant89\SmiteApiClient\Client;

// Create base client
$smiteClient = new Client(SMITE_DEV_ID, SMITE_AUTH_KEY);

要开始使用 API,您首先需要建立有效的会话。为此,您将启动一个会话(通过 createsession 方法)并收到一个 SessionId。会话用于身份验证、安全、监控和节流。一旦您获得一个 SessionId,您就可以将其传递给其他方法进行身份验证。每个会话只持续 15 分钟,之后必须重新创建。

  • Smite
// Get a session_id from a signed authentication request
$authClient = $smiteClient->getHttpClient('auth');
$timestamp = date('omdHis');
$response = $authClient->createSession($timestamp);

// Check for valid response status
if ($response->getStatus() === 200) {
    $sessionId = $response->getContent()['session_id'];
}

现在您有了 $sessionId,您可以自由地调用其他客户端方法。此客户端负责对请求签名,因此您不必担心这一点,现在可以调用其他方法,例如,要获取团队(联盟)的玩家,您将使用

$clanId = 123;

$teamClient = $smiteClient->getHttpClient('team');
$response = $teamClient->getTeamPlayers($clanId, $sessionId, $timestamp);

$teamPlayers = [];
if ($response->getStatus() === 200) {
    $teamPlayers = $response->getContent();
}

速率限制/缓存建议

我建议您实施对 $sessionId 和/或返回数据的某种缓存,因为 Smite 开发者 API 有速率限制,所以缓存可以帮助您避免超过这些限制

默认限制

concurrent_sessions: 50
sessions_per_day: 500
session_time_limit: 15 分钟
request_day_limit: 7500

助手

languageCode

  • 1 英语
  • 2 德语
  • 3 法语
  • 5 中文
  • 7 西班牙语
  • 9 西班牙语(拉丁美洲)
  • 10 葡萄牙语
  • 11 俄语
  • 12 波兰语
  • 13 土耳其语

测试

您可以通过运行此客户端中包含的 PHPUnit 测试来测试您的 API 密钥。

目前没有速率限制或缓存,所以一次运行将使用您每日的 7 个会话(这并不理想)。

PHPUnit 测试

  1. 将您的 devIdauthKey 添加到 tests/Helper/ClientTestCase.php
  2. php vendor/phpunit/phpunit/phpunit tests

PHP CodeSniffer

  • php vendor/squizlabs/php_codesniffer/bin/phpcs src --standard=PSR2 --severity=5 --extensions=php

PHP MessDetector

  • php vendor/phpmd/phpmd/src/bin/phpmd src text controversial,unusedcode,design

贡献

欢迎对客户端做出贡献,要贡献请

  1. 从此仓库分叉
  2. 创建您的功能分支
  3. 提交您的更改
  4. 将更改推送到分支
  5. 创建新的拉取请求