Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL lcQuery
LOCAL lcUrl
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcShopId
LOCAL lcShopName
LOCAL lcShopDescription
LOCAL lcShopEmail
LOCAL lnCostRequestedQueryCost
LOCAL lnCostActualQueryCost
LOCAL lcCostThrottleStatusMaximumAvailable
LOCAL lnCostThrottleStatusCurrentlyAvailable
LOCAL lcCostThrottleStatusRestoreRate
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('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.
loHttp.Login = "SHOPIFY_PRIVATE_API_KEY"
loHttp.Password = "SHOPIFY_PRIVATE_API_SECRET_KEY"
loHttp.BasicAuth = 1
* 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:
lcQuery = "{ shop { id name description email } }"
* My store name is "chilkat". Use your store name here instead.
lcUrl = "https://chilkat.myshopify.com/admin/api/2021-04/graphql.json"
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpStr("POST",lcUrl,lcQuery,"utf-8","application/graphql",loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
* Examine the response code.
IF (loResp.StatusCode <> 200) THEN
? "Received error response code: " + STR(loResp.StatusCode)
? "Response body:"
? loResp.BodyStr
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0
? "Response Body:"
? loJResp.Emit()
lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
? "Response Header:"
? loResp.Header
? "Failed."
RELEASE loHttp
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp
CANCEL
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
lcShopId = loJResp.StringOf("data.shop.id")
lcShopName = loJResp.StringOf("data.shop.name")
lcShopDescription = loJResp.StringOf("data.shop.description")
lcShopEmail = loJResp.StringOf("data.shop.email")
lnCostRequestedQueryCost = loJResp.IntOf("extensions.cost.requestedQueryCost")
lnCostActualQueryCost = loJResp.IntOf("extensions.cost.actualQueryCost")
lcCostThrottleStatusMaximumAvailable = loJResp.StringOf("extensions.cost.throttleStatus.maximumAvailable")
lnCostThrottleStatusCurrentlyAvailable = loJResp.IntOf("extensions.cost.throttleStatus.currentlyAvailable")
lcCostThrottleStatusRestoreRate = loJResp.StringOf("extensions.cost.throttleStatus.restoreRate")
? "Shop name: " + lcShopName
* ...
RELEASE loHttp
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp