Java Requires Chilkat v11.0.0+
Chilkat2 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.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Crypt2;
import com.chilkatsoft.chilkat2.DateTime;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.StringBuilder;
public class ChilkatExample {
public static void main(String[] args) {
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Http http = new 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
JsonObject jsonToken = new JsonObject();
try {
jsonToken.loadFile("qa_data/tokens/tiktok-shops.json");
} catch (ChilkatException e) {
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
JsonObject queryParams = new JsonObject();
queryParams.updateString("app_key", "APP_KEY");
queryParams.updateString("shop_cipher", "SHOP_CIPHER");
queryParams.updateString("shop_id", "SHOP_ID");
DateTime dt = new DateTime();
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
StringBuilder sb = new StringBuilder();
sb.append(appSecret);
sb.append(path);
int numParams = queryParams.getSize();
int i = 0;
while (i < numParams) {
sb.append(queryParams.nameAt(i));
sb.append(queryParams.stringAt(i));
i = i + 1;
}
sb.append(appSecret);
Crypt2 crypt = new Crypt2();
crypt.setHashAlgorithm("SHA256");
crypt.setMacAlgorithm("HMAC");
crypt.setEncodingMode("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");
HttpResponse resp = new HttpResponse();
try {
http.httpParams("GET", "https://open-api.tiktokglobalshop.com/product/202309/categories", queryParams, resp);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
JsonObject json = new JsonObject();
resp.getBodyJson(json);
System.out.println(resp.getStatusCode());
String id = "";
boolean is_leaf = false;
String local_name = "";
String parent_id = "";
int j = 0;
int count_j = 0;
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.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");
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.setJ(j);
strVal = json.stringOf("data.categories[i].permission_statuses[j]");
j = j + 1;
}
i = i + 1;
}
}
}