wizofgoz/crester

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.
This package is abandoned and no longer maintained. No replacement package was suggested.

PHP library for interacting with the Eve Online CREST and XML APIs through a fluent, english-like interface.

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

README

Latest Stable Version Latest Unstable Version Total Downloads License

CRESTer

Eve Online's CREST API Library using fluent, english-like syntax

USAGE:

  1. Set configuration in src/Config files
    a. CREST.php - for setting configuration concerning how the library talks with the API
    b. Cache.php - for setting configuration concerning a cache that the library utilizes
  2. Initialize a Crester object
  3. Redirect to Eve Online SSO
  4. Handle Callback
  5. Make calls on returned object

Functions

Crester Class

redirect() - redirects visitor to Eve Online SSO for authentication
handleCallback($AuthCode, $State = '') - creates a Crest object and handles final authentication with API
fromRefreshToken($Token) - returns a Crest object authenticated by the given Refresh Token
crest() - returns the current connection to the CREST API
xml() - returns the current connection to the XML API

Crest Class

setAuthCode($AuthCode) - updates the connection's used Authorization Code and verifies it
getStatus() - returns true/false whether the connection is ready to make calls to the API
getToken() - returns the current token being used to make requests
getRefreshToken() - returns the current refresh token
getExpiration() - returns when the current token will expire
node($key, $value = NULL) - adds a node to the route to traverse down the API tree
get() - makes a GET call with the current route and returns the result as an array
post($data = []) - makes a POST call with the current route and given data key/values and returns the result as an array
put($data = []) - makes a PUT call with the current route and given data key/values and returns the result as an array
delete() - makes a DELETE call with the current route and returns the result as an array
verifyCode() - makes specialized call to verify Authorization Code (called automatically)
getCharacterInfo() - makes specialized call to retrieve information about the logged-in character
customCall($URL, $Method) - makes a call to the specified URL with the given method (GET, POST, PUT, DELETE)

XML Class

setToken($Token) - sets the access token to use when interacting with API (called automatically)
setKey($Key) - sets call to use API Key Authorization. $Key is an associative array with indexes "KeyID" and "VCode"
scope($Scope) - sets the scope of the call
endPoint($EndPoint) - sets the endpoint the call will use
accessType($AccessType) - sets the type of access the call will request. Only for CREST Authorization
get($Args = [], $Key = NULL) - makes the built call against the API. $Key is an alternate to using setKey() and uses the same syntax
clear() - clears the currently built call (called automatically by get())

Adding Nodes

Nodes that are added to specify the route that a call will use to reach it's destination can follow one of three formats:

Simple Key Search

In Example 1 below, the first node added to the route uses a simple key search. In this case, after calling the base URL, CRESTer will search the returned json for a key called "constellations" and calls the URL in that item's "href".

Key-Value Search

Also demonstrated in Example 1 is adding a key-value search node, shown by the second call to node(). In the example, the node is told to search for a key called "name" that has a value of "Joas".

Example 1: Getting Information for a Constellation

Initialize the CRESTer object

$crester = new \Crester\Crester();

Make redirect to SSO

$crester->redirect();

Handle callback from SSO

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

Define call using fluent interface syntax

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

View the results 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" 
}