DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
String sQuery
String sUrl
Variant vResp
Handle hoResp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
String sShopId
String sShopName
String sShopDescription
String sShopEmail
Integer iCostRequestedQueryCost
Integer iCostActualQueryCost
String sCostThrottleStatusMaximumAvailable
Integer iCostThrottleStatusCurrentlyAvailable
String sCostThrottleStatusRestoreRate
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// 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.
Set ComLogin Of hoHttp To "SHOPIFY_PRIVATE_API_KEY"
Set ComPassword Of hoHttp To "SHOPIFY_PRIVATE_API_SECRET_KEY"
Set ComBasicAuth Of hoHttp To 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:
Move "{ shop { id name description email } }" To sQuery
// My store name is "chilkat". Use your store name here instead.
Move "https://chilkat.myshopify.com/admin/api/2021-04/graphql.json" To sUrl
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoResp to vResp
Get ComHttpStr Of hoHttp "POST" sUrl sQuery "utf-8" "application/graphql" vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
// Examine the response code.
Get ComStatusCode Of hoResp To iTemp1
If (iTemp1 <> 200) Begin
Get ComStatusCode Of hoResp To iTemp1
Showln "Received error response code: " iTemp1
Showln "Response body:"
Get ComBodyStr Of hoResp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComStatusCode Of hoResp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
Showln "Failed."
Procedure_Return
End
// 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
Get ComStringOf Of hoJResp "data.shop.id" To sShopId
Get ComStringOf Of hoJResp "data.shop.name" To sShopName
Get ComStringOf Of hoJResp "data.shop.description" To sShopDescription
Get ComStringOf Of hoJResp "data.shop.email" To sShopEmail
Get ComIntOf Of hoJResp "extensions.cost.requestedQueryCost" To iCostRequestedQueryCost
Get ComIntOf Of hoJResp "extensions.cost.actualQueryCost" To iCostActualQueryCost
Get ComStringOf Of hoJResp "extensions.cost.throttleStatus.maximumAvailable" To sCostThrottleStatusMaximumAvailable
Get ComIntOf Of hoJResp "extensions.cost.throttleStatus.currentlyAvailable" To iCostThrottleStatusCurrentlyAvailable
Get ComStringOf Of hoJResp "extensions.cost.throttleStatus.restoreRate" To sCostThrottleStatusRestoreRate
Showln "Shop name: " sShopName
// ...
End_Procedure