Sample code for 30+ languages & platforms
AutoIt

Refinitiv World-Check One - Get Top Level Groups

See more Refinitiv Examples

Sends a signed GET request to get the top level groups.

Note: This example requires Chilkat v9.5.0.89 or later.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

$oJson = ObjCreate("Chilkat.JsonObject")

; Create the following JSON:
; 
; {
;   "keyId": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
;   "hmacKey": "xxxxzI3vi58xxxCBxxx1+P/d8tGxx7KuLqN/KMPNxxxxekhj8/bx83+1YQSUxxxxYyv939ceY06GvhYRKmxxxx==",
;   "algorithm": "hmac-sha256",
;   "headers": [
;     "(request-target)",
;     "host",
;     "date"
;   ]
; }

; Substitute your actual API key and API secret in place of "api-key" and "api-secret"
$oJson.UpdateString("keyId","api-key")
$oJson.UpdateString("hmacKey","api-secret")
$oJson.UpdateString("algorithm","hmac-sha256")
; Indicate the names of the headers to be included in the signature.
; "(request-target)" is not actually a header name, but is a special name for HTTP signatures.
; Copy the following three lines of code exactly as-is.  
; Do not replace "host", "date", or "(request-target)" with values.
$oJson.UpdateString("headers[0]","(request-target)")
$oJson.UpdateString("headers[1]","host")
$oJson.UpdateString("headers[2]","date")

$oHttp = ObjCreate("Chilkat.Http")

; Setting the AuthSignature property causes the following header to be computed and added:
; Authorization: Signature keyId="...", algorithm="hmac-sha256", headers="(request-target) host date", signature="..."
$oHttp.AuthSignature = $oJson.Emit()

$oHttp.SetRequestHeader "Cache-Control","no-cache"

; Chilkat will auto-add the Date header because it's needed by the HTTP Signature.

Local $sResponseJson = $oHttp.QuickGetStr("https://api-worldcheck.refinitiv.com/v2/groups")
If ($oHttp.LastMethodSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite($sResponseJson & @CRLF)
ConsoleWrite("----" & @CRLF)
; A 200 status code indicates success.
ConsoleWrite("Status code = " & $oHttp.LastStatus & @CRLF)

; Successful JSON looks like this:
; [ 
;   {
;   "id": "...",
;   "name": "Company Name",
;   "parentId": null,
;   "hasChildren": false,
;   "status": "ACTIVE",
;   "children": []
;   }
; ]

; Use this online tool to generate parsing code from sample JSON: 
; Generate Parsing Code from JSON

$oJarr = ObjCreate("Chilkat.JsonArray")

$bSuccess = $oJarr.Load($sResponseJson)

Local $oJsonObj
Local $sId
Local $sName
Local $sParentId
Local $bHasChildren
Local $status
Local $iJ
Local $iCount_j

Local $i = 0
Local $iCount_i = $oJarr.Size
While $i < $iCount_i
    $oJsonObj = $oJarr.ObjectAt($i)
    $sId = $oJsonObj.StringOf("id")
    $sName = $oJsonObj.StringOf("name")
    $sParentId = $oJsonObj.StringOf("parentId")
    $bHasChildren = $oJsonObj.BoolOf("hasChildren")
    $status = $oJsonObj.StringOf("status")
    $iJ = 0
    $iCount_j = $oJsonObj.SizeOfArray("children")
    While $iJ < $iCount_j
        $oJsonObj.J = $iJ
        $iJ = $iJ + 1
    Wend

    $i = $i + 1
Wend