Java
Java
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 Java Downloads
import com.chilkatsoft.*;
public class ChilkatExample {
static {
try {
System.loadLibrary("chilkat");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
boolean success = false;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkHttp http = new CkHttp();
// 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
CkJsonObject jsonToken = new CkJsonObject();
success = jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json");
if (success != true) {
System.out.println("Failed to load tiktok-shops.json");
return;
}
// Replace values in all caps with your specific values.
// SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops
CkJsonObject queryParams = new CkJsonObject();
queryParams.UpdateString("app_key","APP_KEY");
queryParams.UpdateString("shop_cipher","SHOP_CIPHER");
queryParams.UpdateString("shop_id","SHOP_ID");
CkDateTime dt = new 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..
boolean ascending = true;
boolean caseSensitive = true;
queryParams.Sort(ascending,caseSensitive);
String appSecret = "APP_SECRET";
String path = "/product/202309/categories";
// Build the StringToSign
CkStringBuilder sb = new CkStringBuilder();
sb.Append(appSecret);
sb.Append(path);
int numParams = queryParams.get_Size();
int i = 0;
while (i < numParams) {
sb.Append(queryParams.nameAt(i));
sb.Append(queryParams.stringAt(i));
i = i+1;
}
sb.Append(appSecret);
CkCrypt2 crypt = new CkCrypt2();
crypt.put_HashAlgorithm("SHA256");
crypt.put_MacAlgorithm("HMAC");
crypt.put_EncodingMode("hex_lower");
crypt.SetMacKeyString(appSecret);
String 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");
CkHttpResponse resp = new CkHttpResponse();
success = http.HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",queryParams,resp);
if (success == false) {
System.out.println(http.lastErrorText());
return;
}
CkJsonObject json = new CkJsonObject();
resp.GetBodyJson(json);
System.out.println(resp.get_StatusCode());
String id;
boolean is_leaf;
String local_name;
String parent_id;
int j;
int count_j;
String strVal;
int code = json.IntOf("code");
String message = json.stringOf("message");
String request_id = json.stringOf("request_id");
i = 0;
int count_i = json.SizeOfArray("data.categories");
while (i < count_i) {
json.put_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.out.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");
while (j < count_j) {
json.put_J(j);
strVal = json.stringOf("data.categories[i].permission_statuses[j]");
j = j+1;
}
i = i+1;
}
}
}