NOTE: Get an APIKey.
This code will allow you to get a session, fetch account info, upload a file, and search games. From it you should be able to discern how to work with the entire TGC API.
using System;
using System.Threading;
using Newtonsoft.Json;
using RestSharp;
namespace TGCTutorial
{
class Program
{
const string API_KEY_ID = ""; // get your own
const string USERNAME = ""; // put your username here;
const string PASSWORD = ""; // put your password here;
static RestClient client;
static string session_id;
static string user_id;
static void Main(string[] args)
{
client = new RestClient("https://www.thegamecrafter.com/api/");
Console.WriteLine("Getting A Session...");
GetASession(USERNAME, PASSWORD);
Console.WriteLine("Session ID: " + session_id);
Console.WriteLine("User ID: " + user_id);
Thread.Sleep(1000);
Console.WriteLine("\n");
Console.WriteLine("Fetching My Account Info...");
dynamic user = FetchMyAccountInfo();
Console.WriteLine("Display Name: " + user.display_name);
Console.WriteLine("email: " + user.email);
Thread.Sleep(1000);
Console.WriteLine("\n");
Console.WriteLine("Uploading A File...");
dynamic file = UploadAFile(user, "path/to/image.png", "image.png");
Console.WriteLine("File name: " + file.name);
Console.WriteLine("File ID: " + file.id);
Thread.Sleep(1000);
Console.WriteLine("\n");
Console.WriteLine("Searching Games...");
dynamic games = SearchGames();
foreach (dynamic game in games)
{
Console.WriteLine("Game Name: " + game.name);
Console.WriteLine("Game ID: " + game.id);
Thread.Sleep(100);
}
Console.WriteLine("\n");
Console.Write("Hit any key to close...");
Console.ReadKey();
}
static void GetASession(string username, string password)
{
RestRequest request = new RestRequest("session", Method.POST);
request.AddParameter("username", username);
request.AddParameter("password", password);
request.AddParameter("api_key_id", API_KEY_ID);
var response = client.Execute(request);
dynamic data = JsonConvert.DeserializeObject(response.Content);
session_id = data.result.id;
user_id = data.result.user_id;
}
static dynamic FetchMyAccountInfo()
{
RestRequest request = new RestRequest("user/" + user_id, Method.GET);
request.AddParameter("session_id", session_id);
var response = client.Execute(request);
dynamic data = JsonConvert.DeserializeObject(response.Content);
dynamic user = data.result;
return user;
}
static dynamic UploadAFile(dynamic user, string filepath, string filename)
{
RestRequest request = new RestRequest("file", Method.POST);
request.AddFile("file", filepath);
request.AddParameter("name", filename);
request.AddParameter("folder_id", user.root_folder_id);
request.AddParameter("session_id", session_id);
var response = client.Execute(request);
dynamic data = JsonConvert.DeserializeObject(response.Content);
var file = data.result;
return file;
}
static dynamic SearchGames()
{
RestRequest request = new RestRequest("game", Method.GET);
request.AddParameter("q", "Steampunk");
request.AddParameter("session_id", session_id);
var response = client.Execute(request);
dynamic data = JsonConvert.DeserializeObject(response.Content);
dynamic games = data.result.items;
return games;
}
}
}