Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

// 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
lcUrl = "https://api.omniture.com/admin/1.4/rest/?method=Report.Queue"

loJson = createobject("CkJsonObject")
loJson.UpdateString("reportDescription.reportSuiteID","rsid")
loJson.UpdateString("reportDescription.dateGranularity","hour")

loHttp = createobject("CkHttp")

loDt = createobject("CkDateTime")
loDt.SetFromCurrentSystemTime()
lcTimecreated = loDt.GetAsTimestamp(.F.)

loPrng = createobject("CkPrng")
lcNonce = loPrng.GenRandom(12,"hex")

lcSecret = "SECRET"

loSb = createobject("CkStringBuilder")
loSb.Append(lcNonce)
loSb.Append(lcTimecreated)
loSb.Append(lcSecret)

loCrypt = createobject("CkCrypt2")
loCrypt.HashAlgorithm = "sha1"
loCrypt.EncodingMode = "base64"
lcDigest = loCrypt.HashStringENC(loSb.GetAsString())

loSbNonce = createobject("CkStringBuilder")
loSbNonce.Append(lcNonce)
loSbNonce.Encode("base64")

loSb.Clear()
loSb.Append('UsernameToken Username="USERNAME", PasswordDigest="')
loSb.Append(lcDigest)
loSb.Append('", Nonce="')
loSb.Append(loSbNonce.GetAsString())
loSb.Append('", Created="')
loSb.Append(lcTimecreated)
loSb.Append('"')

? loSb.GetAsString()

loHttp.SetRequestHeader("X-WSSE",loSb.GetAsString())

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpJson("POST",lcUrl,loJson,"text/json",loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loJson
    release loHttp
    release loDt
    release loPrng
    release loSb
    release loCrypt
    release loSbNonce
    release loResp
    return
endif

? "Http Status code: " + str(loResp.StatusCode)
? "JSON response:"
? loResp.BodyStr


release loJson
release loHttp
release loDt
release loPrng
release loSb
release loCrypt
release loSbNonce
release loResp