#!/usr/bin/perl -w use strict; use warnings; use chilkat(); $rest = chilkat::CkRest->new(); # URL: https://xxx.xx.xx.xx/api/v2/access/token $bTls = 1; $port = 443; $bAutoReconnect = 1; $success = $rest->Connect("xxx.xx.xx.xx",$port,$bTls,$bAutoReconnect); if ($success != 1) { print "ConnectFailReason: " . $rest->get_ConnectFailReason() . "\r\n"; print $rest->lastErrorText() . "\r\n"; exit; } $rest->SetAuthBasic("username","password"); $json = chilkat::CkJsonObject->new(); $json->UpdateString("grant_type","client_credentials"); $rest->AddHeader("Content-Type","application/json"); $sbRequestBody = chilkat::CkStringBuilder->new(); $json->EmitSb($sbRequestBody); $sbResponseBody = chilkat::CkStringBuilder->new(); $success = $rest->FullRequestSb("POST","/api/v2/access/token",$sbRequestBody,$sbResponseBody); if ($success != 1) { print $rest->lastErrorText() . "\r\n"; exit; } $respStatusCode = $rest->get_ResponseStatusCode(); if ($respStatusCode >= 400) { print "Response Status Code = " . $respStatusCode . "\r\n"; print "Response Header:" . "\r\n"; print $rest->responseHeader() . "\r\n"; print "Response Body:" . "\r\n"; print $sbResponseBody->getAsString() . "\r\n"; exit; } $jsonResponse = chilkat::CkJsonObject->new(); $jsonResponse->LoadSb($sbResponseBody); $access_token = $jsonResponse->stringOf("access_token"); $created_at = $jsonResponse->stringOf("created_at"); $expires_in = $jsonResponse->IntOf("expires_in"); $refresh_token = $jsonResponse->stringOf("refresh_token"); $token_type = $jsonResponse->stringOf("token_type"); $account_id = $jsonResponse->IntOf("account_id");