Sample code for 30+ languages & platforms
Go

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

Go
    success := false

    // 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 := chilkat.NewJsonObject()
    json.UpdateString("reportDescription.reportSuiteID","rsid")
    json.UpdateString("reportDescription.dateGranularity","hour")

    http := chilkat.NewHttp()

    dt := chilkat.NewCkDateTime()
    dt.SetFromCurrentSystemTime()
    timecreated := dt.GetAsTimestamp(false)

    prng := chilkat.NewPrng()
    nonce := prng.GenRandom(12,"hex")

    secret := "SECRET"

    sb := chilkat.NewStringBuilder()
    sb.Append(*nonce)
    sb.Append(*timecreated)
    sb.Append(secret)

    crypt := chilkat.NewCrypt2()
    crypt.SetHashAlgorithm("sha1")
    crypt.SetEncodingMode("base64")
    digest := crypt.HashStringENC(*sb.GetAsString())

    sbNonce := chilkat.NewStringBuilder()
    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("\"")

    fmt.Println(*sb.GetAsString())

    http.SetRequestHeader("X-WSSE",*sb.GetAsString())

    resp := chilkat.NewHttpResponse()
    success = http.HttpJson("POST",url,json,"text/json",resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        json.DisposeJsonObject()
        http.DisposeHttp()
        dt.DisposeCkDateTime()
        prng.DisposePrng()
        sb.DisposeStringBuilder()
        crypt.DisposeCrypt2()
        sbNonce.DisposeStringBuilder()
        resp.DisposeHttpResponse()
        return
    }

    fmt.Println("Http Status code: ", resp.StatusCode())
    fmt.Println("JSON response:")
    fmt.Println(resp.BodyStr())

    json.DisposeJsonObject()
    http.DisposeHttp()
    dt.DisposeCkDateTime()
    prng.DisposePrng()
    sb.DisposeStringBuilder()
    crypt.DisposeCrypt2()
    sbNonce.DisposeStringBuilder()
    resp.DisposeHttpResponse()