Xbase++
Xbase++
Lightspeed - Upload an Image
See more Lightspeed Examples
Create (uploads) a new product image.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oBdImage
LOCAL oJson
LOCAL oResp
LOCAL oSbResponseBody
LOCAL oJResp
LOCAL nRespStatusCode
LOCAL nProductImageId
LOCAL nProductImageSortOrder
LOCAL cProductImageCreatedAt
LOCAL cProductImageUpdatedAt
LOCAL cProductImageExtension
LOCAL nProductImageSize
LOCAL cProductImageTitle
LOCAL cProductImageThumb
LOCAL cProductImageSrc
nSuccess := 0
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
// Implements the following CURL command:
// curl -u API_KEY:API_SECRET \
// -H "Content-Type: application/json" \
// -X POST \
// -d '{
// "productImage": {
// "attachment": "base64-encoded-contents",
// "filename": "the-filename-with-extension-goes-here.jpg"
// }
// }' \
// "https://api.webshopapp.com/en/products/product_id/images.json"
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
oHttp:Login := "API_KEY"
oHttp:Password := "API_SECRET"
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "productImage": {
// "attachment": "base64-encoded-contents",
// "filename": "the-filename-with-extension-goes-here.jpg"
// }
// }
oBdImage := CreateObject("Chilkat.BinData")
nSuccess := oBdImage:LoadFile("qa_data/jpg/starfish.jpg")
IF (nSuccess == 0)
? "Failed to load image file."
oHttp:destroy()
oBdImage:destroy()
RETURN
ENDIF
oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("productImage.attachment", oBdImage:GetEncoded("base64"))
oJson:UpdateString("productImage.filename", "starfish.jpg")
oHttp:SetRequestHeader("Content-Type", "application/json")
// The product ID in the URL is "112265200".
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://api.webshopapp.com/en/products/112265200/images.json", oJson, "application/json", oResp)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oBdImage:destroy()
oJson:destroy()
oResp:destroy()
RETURN
ENDIF
oSbResponseBody := CreateObject("Chilkat.StringBuilder")
oResp:GetBodySb(oSbResponseBody)
oJResp := CreateObject("Chilkat.JsonObject")
oJResp:LoadSb(oSbResponseBody)
oJResp:EmitCompact := 0
? "Response Body:"
? oJResp:Emit()
nRespStatusCode := oResp:StatusCode
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
? "Response Header:"
? oResp:Header
? "Failed."
oHttp:destroy()
oBdImage:destroy()
oJson:destroy()
oResp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()
RETURN
ENDIF
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "productImage": {
// "id": 13362569,
// "sortOrder": 3,
// "createdAt": "2019-06-06T14:52:07+00:00",
// "updatedAt": "2019-06-06T14:52:07+00:00",
// "extension": "png",
// "size": 8016,
// "title": "logo",
// "thumb": "https://cdn.shoplightspeed.com/shops/000001/files/14271562/50x50x2/logo.png",
// "src": "https://cdn.shoplightspeed.com/shops/000001/files/14271562/logo.png"
// }
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
nProductImageId := oJResp:IntOf("productImage.id")
nProductImageSortOrder := oJResp:IntOf("productImage.sortOrder")
cProductImageCreatedAt := oJResp:StringOf("productImage.createdAt")
cProductImageUpdatedAt := oJResp:StringOf("productImage.updatedAt")
cProductImageExtension := oJResp:StringOf("productImage.extension")
nProductImageSize := oJResp:IntOf("productImage.size")
cProductImageTitle := oJResp:StringOf("productImage.title")
cProductImageThumb := oJResp:StringOf("productImage.thumb")
cProductImageSrc := oJResp:StringOf("productImage.src")
oHttp:destroy()
oBdImage:destroy()
oJson:destroy()
oResp:destroy()
oSbResponseBody:destroy()
oJResp:destroy()