AutoIt
AutoIt
TikTok Shop Get Categories
See more TikTok Shop Examples
An example showing how to use a TikTok Shops access token in an API call.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oHttp = ObjCreate("Chilkat.Http")
; It is assumed we previously obtained an OAuth2 access token.
; This example loads the JSON access token file
; saved by this example: Get TikTok Shop OAuth2 Access Token
; or refrehsed by this example: Get TikTok Shop Refresh OAuth2 Access Token
$oJsonToken = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
If ($bSuccess <> True) Then
ConsoleWrite("Failed to load tiktok-shops.json" & @CRLF)
Exit
EndIf
; Replace values in all caps with your specific values.
; SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops
$oQueryParams = ObjCreate("Chilkat.JsonObject")
$oQueryParams.UpdateString("app_key","APP_KEY")
$oQueryParams.UpdateString("shop_cipher","SHOP_CIPHER")
$oQueryParams.UpdateString("shop_id","SHOP_ID")
$oDt = ObjCreate("Chilkat.CkDateTime")
$oQueryParams.UpdateString("timestamp",$oDt.GetAsUnixTimeStr(False))
$oQueryParams.UpdateInt("version",202309)
; Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
Local $bAscending = True
Local $bCaseSensitive = True
$oQueryParams.Sort $bAscending,$bCaseSensitive
Local $sAppSecret = "APP_SECRET"
Local $sPath = "/product/202309/categories"
; Build the StringToSign
$oSb = ObjCreate("Chilkat.StringBuilder")
$oSb.Append($sAppSecret)
$oSb.Append($sPath)
Local $iNumParams = $oQueryParams.Size
Local $i = 0
While $i < $iNumParams
$oSb.Append($oQueryParams.NameAt($i))
$oSb.Append($oQueryParams.StringAt($i))
$i = $i + 1
Wend
$oSb.Append($sAppSecret)
$oCrypt = ObjCreate("Chilkat.Crypt2")
$oCrypt.HashAlgorithm = "SHA256"
$oCrypt.MacAlgorithm = "HMAC"
$oCrypt.EncodingMode = "hex_lower"
$oCrypt.SetMacKeyString($sAppSecret)
Local $sig = $oCrypt.MacStringENC($oSb.GetAsString())
$oQueryParams.UpdateString("access_token",$oJsonToken.StringOf("data.access_token"))
$oQueryParams.UpdateString("sign",$sig)
$oHttp.SetRequestHeader "x-tts-access-token",$oJsonToken.StringOf("data.access_token")
$oHttp.SetRequestHeader "content-type","application/json"
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",$oQueryParams,$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
$oJson = ObjCreate("Chilkat.JsonObject")
$oResp.GetBodyJson($oJson)
ConsoleWrite($oResp.StatusCode & @CRLF)
Local $sId
Local $bIs_leaf
Local $sLocal_name
Local $sParent_id
Local $iJ
Local $iCount_j
Local $strVal
Local $iCode = $oJson.IntOf("code")
Local $sMessage = $oJson.StringOf("message")
Local $sRequest_id = $oJson.StringOf("request_id")
$i = 0
Local $iCount_i = $oJson.SizeOfArray("data.categories")
While $i < $iCount_i
$oJson.I = $i
$sId = $oJson.StringOf("data.categories[i].id")
$bIs_leaf = $oJson.BoolOf("data.categories[i].is_leaf")
$sLocal_name = $oJson.StringOf("data.categories[i].local_name")
ConsoleWrite("local_name: " & $sLocal_name & @CRLF)
$sParent_id = $oJson.StringOf("data.categories[i].parent_id")
$iJ = 0
$iCount_j = $oJson.SizeOfArray("data.categories[i].permission_statuses")
While $iJ < $iCount_j
$oJson.J = $iJ
$strVal = $oJson.StringOf("data.categories[i].permission_statuses[j]")
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend