NOTE: Get an APIKey.
#!/usr/bin/env perl use Modern::Perl; use LWP::UserAgent; use HTTP::Request::Common; use JSON; use Data::Dumper; my $response = LWP::UserAgent->new->request( POST 'https://www.thegamecrafter.com/api/session', [ username => 'joe', password => 'abc123', api_key_id => '', # get your own ]); my $result = from_json($response->decoded_content); if ($response->is_success) { say 'Session ID: ', $result->{result}{id}; } else { die 'Error: ', $result->{error}{message}; } my $session = $result->{result};
my $response = LWP::UserAgent->new->request( GET 'https://www.thegamecrafter.com/api/user/'.$session->{user_id}, [ session_id => $session->{id}, ]); my $result = from_json($response->decoded_content); if ($response->is_success) { say Dumper($result->{result}); } else { die 'Error: ', $result->{error}{message}; } my $user = $result->{result};
my $response = LWP::UserAgent->new->request( POST 'https://www.thegamecrafter.com/api/file', [ name => 'image.jpg', file => \'/path/to/file.jpg', folder_id => $user->{root_folder_id}, session_id => $session->{id}, ]); my $result = from_json($response->decoded_content); if ($response->is_success) { say Dumper($result->{result}); } else { die 'Error: ', $result->{error}{message}; }
my $response = LWP::UserAgent->new->request( GET 'https://www.thegamecrafter.com/api/game', [ q => 'Steampunk', session_id => $session->{id}, # optional ]); my $result = from_json($response->decoded_content); if ($response->is_success) { say Dumper($result->{result}); } else { say 'Error: ', $result->{error}{message}; }
Session ID is optional for this.
You can make this even easier on yourself by using the Perl client wrapper for TGC: https://metacpan.org/pod/TheGameCrafter::Client
use TheGameCrafter::Client; my $session = tgc_post('session', { username => 'me', password => '123qwe', api_key_id => 'abcdefghijklmnopqrztuz' }); my $user = tgc_get('user/'.$session->{user_id}, {session_id => $session->{id}}); my $file = tgc_post('file', {name => 'image.jpg', file => \'/path/to/file.jpg', folder_id => $user->{root_folder_id}, session_id => $session->{id}}); my $games = tgc_get('game', {q => 'Steampunk', session_id => $session->{id}});