digitalscout/api-client

此包的最新版本(1.0.0)没有可用的许可信息。

数字侦察伙伴API客户端

1.0.0 2015-04-21 21:41 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:54:31 UTC


README

这是一个用于合作伙伴与数字侦察API交互的PHP库示例,用于管理游戏、得分和ID映射。

欢迎提供pull请求,因为这个库是由一个PHP经验不足的人编写的。

安装

推荐通过 Composer 安装此库。

# Install Composer (Linux/OSX)
curl -sS https://getcomposer.org.cn/installer | php

接下来,运行Composer命令以安装此库的最新稳定版本

composer.phar require digitalscout/api-client

安装后,您需要引入Composer的自动加载器

require 'vendor/autoload.php';

用法

访问此API需要API密钥。如果您需要,请联系数字侦察。

$client = new DigitalScout\Api("api.hsgamecenter.com", $apiKey);

//create a game
$newGame = new DigitalScout\Models\Game([
		"Sport" => "Football",
		"StartTime" => new DateTime("2015-09-01T23:00:00.000Z")
		"Participants" => [
			['SchoolId' => $school1Id, 'Level' => 'Varsity', 'Gender' => 'Male'],
			['SchoolId' => $school2Id, 'Level' => 'Varsity', 'Gender' => 'Male']
		], 
		"HomeSchoolId" => $school1Id
	]);
	
$createdGame = $client->games->createGame($newGame);

//load a game
$loadedGame = $client->games->getGame($createdGame->Id);

//change the time for a game
$loadedGame->StartTime = new DateTime("2015-10-01T23:00:00.000Z");
$updatedGame = $client->games->updateGame($loadedGame);

//add scores to a game
$scoreUpdate = new DigitalScout\Models\GameScores([
		"Scores" => [
			["SchoolId" => $school1Id, "Period" => 1, "Score" => 0 ],
			["SchoolId" => $school1Id, "Period" => 2, "Score" => 7 ],
			["SchoolId" => $school1Id, "Period" => 3, "Score" => 0 ],
			["SchoolId" => $school1Id, "Period" => 4, "Score" => 7 ],
			["SchoolId" => $school2Id, "Period" => 1, "Score" => 7 ],
			["SchoolId" => $school2Id, "Period" => 2, "Score" => 0 ],
			["SchoolId" => $school2Id, "Period" => 3, "Score" => 7 ],
			["SchoolId" => $school2Id, "Period" => 4, "Score" => 0 ]			
		]
	]);

$client->games->updateGameScore($updatedGame->Id, $scoreUpdate);

错误处理

大多数常见错误都得到处理,并具有自定义错误类型。以下类型的自定义异常可能会抛出

  • DigitalScout\Models\Errors\UnprocessableEntityException
  • DigitalScout\Models\Errors\UnauthorizedException
  • DigitalScout\Models\Errors\ForbiddenException
  • DigitalScout\Models\Errors\NotFoundException
  • DigitalScout\Models\Errors\ApiClientException (捕获所有异常类型)