Go
Go
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 Go Downloads
success := false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := chilkat.NewHttp()
// 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 := chilkat.NewJsonObject()
success = jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
if success != true {
fmt.Println("Failed to load tiktok-shops.json")
http.DisposeHttp()
jsonToken.DisposeJsonObject()
return
}
// Replace values in all caps with your specific values.
// SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops
queryParams := chilkat.NewJsonObject()
queryParams.UpdateString("app_key","APP_KEY")
queryParams.UpdateString("shop_cipher","SHOP_CIPHER")
queryParams.UpdateString("shop_id","SHOP_ID")
dt := chilkat.NewCkDateTime()
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 := chilkat.NewStringBuilder()
sb.Append(appSecret)
sb.Append(path)
numParams := queryParams.Size()
i := 0
for i < numParams {
sb.Append(*queryParams.NameAt(i))
sb.Append(*queryParams.StringAt(i))
i = i + 1
}
sb.Append(appSecret)
crypt := chilkat.NewCrypt2()
crypt.SetHashAlgorithm("SHA256")
crypt.SetMacAlgorithm("HMAC")
crypt.SetEncodingMode("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 := chilkat.NewHttpResponse()
success = http.HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",queryParams,resp)
if success == false {
fmt.Println(http.LastErrorText())
http.DisposeHttp()
jsonToken.DisposeJsonObject()
queryParams.DisposeJsonObject()
dt.DisposeCkDateTime()
sb.DisposeStringBuilder()
crypt.DisposeCrypt2()
resp.DisposeHttpResponse()
return
}
json := chilkat.NewJsonObject()
resp.GetBodyJson(json)
fmt.Println(resp.StatusCode())
var id *string = new(string)
var is_leaf bool
var local_name *string = new(string)
parent_ var id *string = new(string)
var j int
var count_j int
var strVal *string = new(string)
code := json.IntOf("code")
message := json.StringOf("message")
request_id := json.StringOf("request_id")
i = 0
count_i := json.SizeOfArray("data.categories")
for i < count_i {
json.SetI(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")
fmt.Println("local_name: ", *local_name)
parent_id = json.StringOf("data.categories[i].parent_id")
j = 0
count_j = json.SizeOfArray("data.categories[i].permission_statuses")
for j < count_j {
json.SetJ(j)
strVal = json.StringOf("data.categories[i].permission_statuses[j]")
j = j + 1
}
i = i + 1
}
http.DisposeHttp()
jsonToken.DisposeJsonObject()
queryParams.DisposeJsonObject()
dt.DisposeCkDateTime()
sb.DisposeStringBuilder()
crypt.DisposeCrypt2()
resp.DisposeHttpResponse()
json.DisposeJsonObject()