PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = New-Object 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
$jsonToken = New-Object Chilkat.JsonObject
$success = $jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
if ($success -ne $true) {
$("Failed to load tiktok-shops.json")
exit
}
# Replace values in all caps with your specific values.
# SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops
$queryParams = New-Object Chilkat.JsonObject
$queryParams.UpdateString("app_key","APP_KEY")
$queryParams.UpdateString("shop_cipher","SHOP_CIPHER")
$queryParams.UpdateString("shop_id","SHOP_ID")
$dt = New-Object Chilkat.CkDateTime
$queryParams.UpdateString("timestamp",$dt.GetAsUnixTimeStr($false))
$queryParams.UpdateInt("version",202309)
# Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
$ascending = $true
$caseSensitive = $true
$queryParams.Sort($ascending,$caseSensitive)
$appSecret = "APP_SECRET"
$path = "/product/202309/categories"
# Build the StringToSign
$sb = New-Object Chilkat.StringBuilder
$sb.Append($appSecret)
$sb.Append($path)
$numParams = $queryParams.Size
$i = 0
while ($i -lt $numParams) {
$sb.Append($queryParams.NameAt($i))
$sb.Append($queryParams.StringAt($i))
$i = $i + 1
}
$sb.Append($appSecret)
$crypt = New-Object Chilkat.Crypt2
$crypt.HashAlgorithm = "SHA256"
$crypt.MacAlgorithm = "HMAC"
$crypt.EncodingMode = "hex_lower"
$crypt.SetMacKeyString($appSecret)
$sig = $crypt.MacStringENC($sb.GetAsString())
$queryParams.UpdateString("access_token",$jsonToken.StringOf("data.access_token"))
$queryParams.UpdateString("sign",$sig)
$http.SetRequestHeader("x-tts-access-token",$jsonToken.StringOf("data.access_token"))
$http.SetRequestHeader("content-type","application/json")
$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",$queryParams,$resp)
if ($success -eq $false) {
$($http.LastErrorText)
exit
}
$json = New-Object Chilkat.JsonObject
$resp.GetBodyJson($json)
$($resp.StatusCode)
$code = $json.IntOf("code")
$message = $json.StringOf("message")
$request_id = $json.StringOf("request_id")
$i = 0
$count_i = $json.SizeOfArray("data.categories")
while ($i -lt $count_i) {
$json.I = $i
$id = $json.StringOf("data.categories[i].id")
$is_leaf = $json.BoolOf("data.categories[i].is_leaf")
$local_name = $json.StringOf("data.categories[i].local_name")
$("local_name: " + $local_name)
$parent_id = $json.StringOf("data.categories[i].parent_id")
$j = 0
$count_j = $json.SizeOfArray("data.categories[i].permission_statuses")
while ($j -lt $count_j) {
$json.J = $j
$strVal = $json.StringOf("data.categories[i].permission_statuses[j]")
$j = $j + 1
}
$i = $i + 1
}