B4X Requires Chilkat v11.0.0+
B4X
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 B4X Downloads
Dim success As Boolean = False
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
Dim http As ChilkatHttp
http.Initialize("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
Dim jsonToken As ChilkatJsonObject
jsonToken.Initialize
success = jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
If success <> True Then
Log("Failed to load tiktok-shops.json")
Return
End If
' Replace values in all caps with your specific values.
' SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops
Dim queryParams As ChilkatJsonObject
queryParams.Initialize
queryParams.UpdateString("app_key", "APP_KEY")
queryParams.UpdateString("shop_cipher", "SHOP_CIPHER")
queryParams.UpdateString("shop_id", "SHOP_ID")
Dim dt As ChilkatDateTime
dt.Initialize
queryParams.UpdateString("timestamp", dt.GetAsUnixTimeStr(False))
queryParams.UpdateInt("version", 202309)
' Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
Dim ascending As Boolean = True
Dim caseSensitive As Boolean = True
queryParams.Sort(ascending, caseSensitive)
Dim appSecret As String = "APP_SECRET"
Dim path As String = "/product/202309/categories"
' Build the StringToSign
Dim sb As ChilkatStringBuilder
sb.Initialize
sb.Append(appSecret)
sb.Append(path)
Dim numParams As Int = queryParams.Size
Dim i As Int = 0
Do While i < numParams
sb.Append(queryParams.NameAt(i))
sb.Append(queryParams.StringAt(i))
i = i + 1
Loop
sb.Append(appSecret)
Dim crypt As ChilkatCrypt2
crypt.Initialize("crypt")
crypt.HashAlgorithm = "SHA256"
crypt.MacAlgorithm = "HMAC"
crypt.EncodingMode = "hex_lower"
crypt.SetMacKeyString(appSecret)
Dim sig As String = 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")
Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpParams("GET", "https://open-api.tiktokglobalshop.com/product/202309/categories", queryParams, resp)
If success = False Then
Log(http.LastErrorText)
Return
End If
Dim json As ChilkatJsonObject
json.Initialize
resp.GetBodyJson(json)
Log(resp.StatusCode)
Dim id As String
Dim is_leaf As Boolean
Dim local_name As String
Dim parent_id As String
Dim j As Int
Dim count_j As Int
Dim strVal As String
Dim code As Int = json.IntOf("code")
Dim message As String = json.StringOf("message")
Dim request_id As String = json.StringOf("request_id")
i = 0
Dim count_i As Int = json.SizeOfArray("data.categories")
Do While i < 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")
Log("local_name: " & local_name)
parent_id = json.StringOf("data.categories[i].parent_id")
j = 0
count_j = json.SizeOfArray("data.categories[i].permission_statuses")
Do While j < count_j
json.J = j
strVal = json.StringOf("data.categories[i].permission_statuses[j]")
j = j + 1
Loop
i = i + 1
Loop