Sample code for 30+ languages & platforms
Xojo Plugin

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 Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Dim http As New 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
Dim jsonToken As New Chilkat.JsonObject
success = jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
If (success <> True) Then
    System.DebugLog("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 New Chilkat.JsonObject
success = queryParams.UpdateString("app_key","APP_KEY")
success = queryParams.UpdateString("shop_cipher","SHOP_CIPHER")
success = queryParams.UpdateString("shop_id","SHOP_ID")
Dim dt As New Chilkat.CkDateTime
success = queryParams.UpdateString("timestamp",dt.GetAsUnixTimeStr(False))
success = queryParams.UpdateInt("version",202309)

// Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
Dim ascending As Boolean
ascending = True
Dim caseSensitive As Boolean
caseSensitive = True
queryParams.Sort ascending,caseSensitive

Dim appSecret As String
appSecret = "APP_SECRET"
Dim path As String
path = "/product/202309/categories"

// Build the StringToSign
Dim sb As New Chilkat.StringBuilder
success = sb.Append(appSecret)
success = sb.Append(path)
Dim numParams As Int32
numParams = queryParams.Size
Dim i As Int32
i = 0
While i < numParams
    success = sb.Append(queryParams.NameAt(i))
    success = sb.Append(queryParams.StringAt(i))
    i = i + 1
Wend
success = sb.Append(appSecret)

Dim crypt As New Chilkat.Crypt2
crypt.HashAlgorithm = "SHA256"
crypt.MacAlgorithm = "HMAC"
crypt.EncodingMode = "hex_lower"
success = crypt.SetMacKeyString(appSecret)

Dim sig As String
sig = crypt.MacStringENC(sb.GetAsString())

success = queryParams.UpdateString("access_token",jsonToken.StringOf("data.access_token"))
success = queryParams.UpdateString("sign",sig)

http.SetRequestHeader "x-tts-access-token",jsonToken.StringOf("data.access_token")
http.SetRequestHeader "content-type","application/json"

Dim resp As New Chilkat.HttpResponse
success = http.HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",queryParams,resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim json As New Chilkat.JsonObject
success = resp.GetBodyJson(json)

System.DebugLog(Str(resp.StatusCode))

Dim id As String
Dim is_leaf As Boolean
Dim local_name As String
Dim parent_id As String
Dim j As Int32
Dim count_j As Int32
Dim strVal As String

Dim code As Int32
code = json.IntOf("code")
Dim message As String
message = json.StringOf("message")
Dim request_id As String
request_id = json.StringOf("request_id")
i = 0
Dim count_i As Int32
count_i = json.SizeOfArray("data.categories")
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")
    System.DebugLog("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 < count_j
        json.J = j
        strVal = json.StringOf("data.categories[i].permission_statuses[j]")
        j = j + 1
    Wend
    i = i + 1
Wend