Sample code for 30+ languages & platforms
AutoIt

Shopify GraphQL Simple Query (Get Shop Object)

See more Shopify Examples

Demonstrates a simple Shopify GraphQL query to get specific fields of the Shop object.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oHttp = ObjCreate("Chilkat.Http")

; This example will use private authentication (which is HTTP Basic authentication)
; See the other Chilkat Shopify examples for OAuth2 authentication.
; To use HTTP Basic Authentication with any HTTP request, we simply set the Login, Password, and BasicAuth properties.
; Important: All HTTP requests using Basic authentication must be over SSL/TLS.
$oHttp.Login = "SHOPIFY_PRIVATE_API_KEY"
$oHttp.Password = "SHOPIFY_PRIVATE_API_SECRET_KEY"
$oHttp.BasicAuth = True

; We're going to do a POST  https://{shop}.myshopify.com/admin/api/2021-04/graphql.json
; Make sure to replace "chilkat" with your store name.

; The body of the request will be:
;    {
;        shop {
;            id
;            name
;            description
;            email
;         }
;     }

; The above query is not JSON.  It looks like JSON, but it's actually not.
; We'll just make it one line:

Local $sQuery = "{ shop { id name description email } }"

; My store name is "chilkat".  Use your store name here instead.
Local $sUrl = "https://chilkat.myshopify.com/admin/api/2021-04/graphql.json"

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpStr("POST",$sUrl,$sQuery,"utf-8","application/graphql",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

; Examine the response code.
If ($oResp.StatusCode <> 200) Then
    ConsoleWrite("Received error response code: " & $oResp.StatusCode & @CRLF)
    ConsoleWrite("Response body:" & @CRLF)
    ConsoleWrite($oResp.BodyStr & @CRLF)
    Exit
EndIf

$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$oResp.GetBodySb($oSbResponseBody)
$oJResp = ObjCreate("Chilkat.JsonObject")
$oJResp.LoadSb($oSbResponseBody)
$oJResp.EmitCompact = False

ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($oJResp.Emit() & @CRLF)

Local $iRespStatusCode = $oResp.StatusCode
ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode >= 400) Then
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oResp.Header & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

; Sample JSON response:
; (Sample code for parsing the JSON response is shown below)

; {
;   "data": {
;     "shop": {
;       "id": "gid:\/\/shopify\/Shop\/24198053",
;       "name": "chilkat",
;       "description": null,
;       "email": "admin@chilkatsoft.com"
;     }
;   },
;   "extensions": {
;     "cost": {
;       "requestedQueryCost": 1,
;       "actualQueryCost": 1,
;       "throttleStatus": {
;         "maximumAvailable": 1000.0,
;         "currentlyAvailable": 999,
;         "restoreRate": 50.0
;       }
;     }
;   }
; }

; Sample code for parsing the JSON response...
; Use the following online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON

Local $shopId = $oJResp.StringOf("data.shop.id")
Local $shopName = $oJResp.StringOf("data.shop.name")
Local $shopDescription = $oJResp.StringOf("data.shop.description")
Local $shopEmail = $oJResp.StringOf("data.shop.email")
Local $iCostRequestedQueryCost = $oJResp.IntOf("extensions.cost.requestedQueryCost")
Local $iCostActualQueryCost = $oJResp.IntOf("extensions.cost.actualQueryCost")
Local $sCostThrottleStatusMaximumAvailable = $oJResp.StringOf("extensions.cost.throttleStatus.maximumAvailable")
Local $iCostThrottleStatusCurrentlyAvailable = $oJResp.IntOf("extensions.cost.throttleStatus.currentlyAvailable")
Local $sCostThrottleStatusRestoreRate = $oJResp.StringOf("extensions.cost.throttleStatus.restoreRate")

ConsoleWrite("Shop name: " & $shopName & @CRLF)
; ...