Sample code for 30+ languages & platforms
Java Requires Chilkat v11.0.0+

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

Chilkat2 Java
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;
        }
    }
}