NOTE: Get an APIKey.
This code will allow you to get a session, fetch account info, and upload a file. From it you should be able to discern how to work with the entire TGC API.
<?php
// reading in secret info via environment variables so I don't accidentally share it with anyone
$username = $_ENV['TGC_USER'];
$password = $_ENV['TGC_PASS'];
$apikey = $_ENV['TGC_API_KEY'];
// create a session
$session = post('session', array(
'username' => $username,
'password' => $password,
'api_key_id' => $apikey,
));
$session_id = $session->{'result'}->{'id'};
// fetch info about the user
$user = get('user/'.$session->{'result'}->{'user_id'}, array(
'session_id' => $session_id,
));
// upload a file to the filesystem
$file = post('file', array(
'session_id' => $session_id,
'file' => '@/Users/jt/Desktop/jt.jpg', // note the @ symbol at the start of the file path
'name' => 'jt.jpg',
'folder_id' => $user->{'result'}->{'root_folder_id'},
));
// dump what we know about the file
var_dump($file);
// execute a POST operation to TGC's web services and return an object
function post($url, $params) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://www.thegamecrafter.com/api/'.$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec($ch);
if(curl_errno($ch)) { //catch if curl error exists and show it
echo 'Curl error: ' . curl_error($ch);
curl_close ($ch);
}
else {
curl_close ($ch);
return json_decode($result);
}
}
// execute a GET operation to TGC's web services and return an object
function get($url, $params) {
$query = '?';
if ($params) {
foreach($params as $key=>$value) {
$query .= $key.'='.$value.'&';
}
}
$query = trim($query, '&');
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, 'https://www.thegamecrafter.com/api/'.$url.$query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result = curl_exec($ch);
if (curl_errno($ch)) { //catch if curl error exists and show it
echo 'Curl error: ' . curl_error($ch);
curl_close ($ch);
}
else {
curl_close ($ch);
return json_decode($result);
}
}
?>