wizofgoz/crester

此软件包已被弃用且不再维护。未建议替代软件包。

用于通过流畅、类似英语的界面与《Eve Online》CREST和XML API交互的PHP库。

v0.2.6 2017-02-07 21:47 UTC

README

Latest Stable Version Latest Unstable Version Total Downloads License

CRESTer

使用流畅、类似英语的语法编写的《Eve Online》CREST API库

用法

  1. 在src/Config文件中设置配置
    a. CREST.php - 用于设置库与API通信的配置
    b. Cache.php - 用于设置库使用的缓存配置
  2. 初始化Crester对象
  3. 重定向到《Eve Online》SSO
  4. 处理回调
  5. 对返回的对象进行调用

函数

Crester类

redirect() - 将访客重定向到《Eve Online》SSO进行身份验证
handleCallback($AuthCode, $State = '') - 创建Crest对象并处理与API的最终身份验证
fromRefreshToken($Token) - 通过给定的刷新令牌返回经过身份验证的Crest对象
crest() - 返回当前到CREST API的连接
xml() - 返回当前到XML API的连接

Crest类

setAuthCode($AuthCode) - 更新连接使用的授权代码并验证它
getStatus() - 返回连接是否准备好调用API(true/false)
getToken() - 返回当前用于发出请求的令牌
getRefreshToken() - 返回当前刷新令牌
getExpiration() - 返回当前令牌何时到期
node($key, $value = NULL) - 向路由添加节点以遍历API树
get() - 使用当前路由进行GET调用并返回结果数组
post($data = []) - 使用当前路由和给定数据键/值进行POST调用并返回结果数组
put($data = []) - 使用当前路由和给定数据键/值进行PUT调用并返回结果数组
delete() - 使用当前路由进行DELETE调用并返回结果数组
verifyCode() - 进行验证授权代码的特定调用(自动调用)
getCharacterInfo() - 进行检索登录角色的信息的特定调用
customCall($URL, $Method) - 使用指定方法(GET、POST、PUT、DELETE)调用指定URL

XML类

setToken($Token) - 设置与API交互时使用的访问令牌(自动调用)
setKey($Key) - 设置调用以使用API密钥授权。$Key是一个关联数组,具有“KeyID”和“VCode”索引
scope($Scope) - 设置调用的作用域
endPoint($EndPoint) - 设置调用将使用的端点
accessType($AccessType) - 设置调用将请求的访问类型。仅适用于CREST授权
get($Args = [], $Key = NULL) - 对API进行构建的调用。$Key是使用setKey()的替代方案,并使用相同的语法
clear() - 清除当前构建的调用(由get()自动调用)

添加节点

用于指定一个通话将使用的路由以到达目的地的节点可以遵循以下三种格式之一

简单键搜索

以下示例1中,路由中添加的第一个节点使用简单键搜索。在这种情况下,在调用基本URL后,CRESter将搜索返回的json中名为"constellations"的键,并调用该项中的"href" URL。

键值搜索

示例1中也展示了添加键值搜索节点,通过对node()的第二次调用显示。在示例中,节点被指示搜索名为"name"且值为"Joas"的键。

示例1:获取星座信息

初始化CRESter对象

$crester = new \Crester\Crester();

执行SSO重定向

$crester->redirect();

处理SSO回调

$crest = $crester->handleCallback($_GET['code'], isset($_GET['state']) ? $_GET['state'] : '');

使用流畅接口语法定义调用

$Joas = $crest->node('constellations')->node('name', 'Joas')->get();

查看结果 var_dump($Joas);

array(4) { 
	["position"]=> array(3) { 
		["y"]=> float(3.3836265012848E+16) 
		["x"]=> float(-4.9173916281706E+16) 
		["z"]=> float(-4.2057063709409E+16) 
	} 
	["region"]=> array(1) { 
		["href"]=> string(48) "https://crest-tq.eveonline.com/regions/10000001/" 
	} 
	["systems"]=> array(7) { 
		[0]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000112/" 
			["id"]=> int(30000112) 
			["id_str"]=> string(8) "30000112" 
		} 
		[1]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000113/" 
			["id"]=> int(30000113) 
			["id_str"]=> string(8) "30000113" 
		} 
		[2]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000114/" 
			["id"]=> int(30000114) 
			["id_str"]=> string(8) "30000114" 
		} 
		[3]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000115/" 
			["id"]=> int(30000115) 
			["id_str"]=> string(8) "30000115" 
		} 
		[4]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000116/" 
			["id"]=> int(30000116) 
			["id_str"]=> string(8) "30000116" 
		} 
		[5]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000117/" 
			["id"]=> int(30000117) 
			["id_str"]=> string(8) "30000117" 
		} 
		[6]=> array(3) { 
			["href"]=> string(53) "https://crest-tq.eveonline.com/solarsystems/30000118/" 
			["id"]=> int(30000118) 
			["id_str"]=> string(8) "30000118" 
		} 
	} 
	["name"]=> string(4) "Joas" 
}