AutoIt
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
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)
; ...