Sample code for 30+ languages & platforms
PHP ActiveX

Adobe Analytics Reporting API (1.4)

See more HTTP Misc Examples

Demonstrates a simple POST of JSON to the Adobe Analytics Reporting API (v1.4)

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

// In this example, replace "rsid" with your report suite id, and update the URL to use the correct endpoint
$url = 'https://api.omniture.com/admin/1.4/rest/?method=Report.Queue';

$json = new COM("Chilkat.JsonObject");
$json->UpdateString('reportDescription.reportSuiteID','rsid');
$json->UpdateString('reportDescription.dateGranularity','hour');

$http = new COM("Chilkat.Http");

$dt = new COM("Chilkat.CkDateTime");
$dt->SetFromCurrentSystemTime();
$timecreated = $dt->getAsTimestamp(0);

$prng = new COM("Chilkat.Prng");
$nonce = $prng->genRandom(12,'hex');

$secret = 'SECRET';

$sb = new COM("Chilkat.StringBuilder");
$sb->Append($nonce);
$sb->Append($timecreated);
$sb->Append($secret);

$crypt = new COM("Chilkat.Crypt2");
$crypt->HashAlgorithm = 'sha1';
$crypt->EncodingMode = 'base64';
$digest = $crypt->hashStringENC($sb->getAsString());

$sbNonce = new COM("Chilkat.StringBuilder");
$sbNonce->Append($nonce);
$sbNonce->Encode('base64');

$sb->Clear();
$sb->Append('UsernameToken Username=\'USERNAME\', PasswordDigest=\'');
$sb->Append($digest);
$sb->Append('\', Nonce=\'');
$sb->Append($sbNonce->getAsString());
$sb->Append('\', Created=\'');
$sb->Append($timecreated);
$sb->Append('\'');

print $sb->getAsString() . "\n";

$http->SetRequestHeader('X-WSSE',$sb->getAsString());

$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpJson('POST',$url,$json,'text/json',$resp);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

print 'Http Status code: ' . $resp->StatusCode . "\n";
print 'JSON response:' . "\n";
print $resp->BodyStr . "\n";

?>