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

TikTok Shop Get Authorized Shops

See more TikTok Shop Examples

An example showing how to get the authorized shops in the TikTok Shops API.

Chilkat Rust Downloads

Rust

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

let http = chilkat::Http::new();

// 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
let json_token = chilkat::JsonObject::new();
if json_token.load_file("qa_data/tokens/tiktok-shops.json").is_err() {
    println!("Failed to load tiktok-shops.json");
    return;
}

let query_params = chilkat::JsonObject::new();
let _ = query_params.update_string("app_key", "APP_KEY");
let dt = chilkat::DateTime::new();
let _ = query_params.update_string("timestamp", &dt.get_as_unix_time_str(false).unwrap_or_default());
let _ = query_params.update_int("version", 202309);

// Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
let ascending = true;
let case_sensitive = true;
query_params.sort(ascending, case_sensitive);

let app_secret = "APP_SECRET".to_string();
let path = "/authorization/202309/shops".to_string();

// Build the StringToSign
let sb = chilkat::StringBuilder::new();
let _ = sb.append(&app_secret);
let _ = sb.append(&path);
let num_params = query_params.size();
let mut i = 0;
while i < num_params {
    let _ = sb.append(&query_params.name_at(i).unwrap_or_default());
    let _ = sb.append(&query_params.string_at(i).unwrap_or_default());
    i = i + 1;
}

let _ = sb.append(&app_secret);

let crypt = chilkat::Crypt2::new();
crypt.set_hash_algorithm("SHA256");
crypt.set_mac_algorithm("HMAC");
crypt.set_encoding_mode("hex_lower");
let _ = crypt.set_mac_key_string(&app_secret);

let sig = crypt.mac_string_enc(&sb.get_as_string().unwrap_or_default()).unwrap_or_default();

let _ = query_params.update_string("access_token", &json_token.string_of("data.access_token").unwrap_or_default());
let _ = query_params.update_string("sign", &sig);

http.set_request_header("x-tts-access-token", &json_token.string_of("data.access_token").unwrap_or_default());
http.set_request_header("content-type", "application/json");

let resp = chilkat::HttpResponse::new();
if http.http_params("GET", "https://open-api.tiktokglobalshop.com/authorization/202309/shops", &query_params, &resp).is_err() {
    println!("{}", http.last_error_text());
    return;
}

let json = chilkat::JsonObject::new();
let _ = resp.get_body_json(&json);

println!("{}", resp.status_code());
println!("{}", resp.body_str());

// Sample JSON response...
// Use this online tool to generate parsing code from sample JSON: 
// Generate Parsing Code from JSON

// {
//   "code": 0,
//   "data": {
//     "shops": [
//       {
//         "cipher": "GCP_XF90igAAAABh00qsWgtvOiGFNqyubMt3",
//         "code": "CNGBCBA4LLU8",
//         "id": "7000714532876273420",
//         "name": "Maomao beauty shop",
//         "region": "GB",
//         "seller_type": "CROSS_BORDER"
//       }
//     ]
//   },
//   "message": "Success",
//   "request_id": "202203070749000101890810281E8C70B7"
// }

let code = json.int_of("code");
let message = json.string_of("message").unwrap_or_default();
let request_id = json.string_of("request_id").unwrap_or_default();
i = 0;
let count_i = json.size_of_array("data.shops");
while i < count_i {
    json.set_i(i);
    let _ = json.string_of("data.shops[i].cipher").unwrap_or_default();
    let _ = json.string_of("data.shops[i].code").unwrap_or_default();
    let _ = json.string_of("data.shops[i].id").unwrap_or_default();
    let _ = json.string_of("data.shops[i].name").unwrap_or_default();
    let _ = json.string_of("data.shops[i].region").unwrap_or_default();
    let _ = json.string_of("data.shops[i].seller_type").unwrap_or_default();
    i = i + 1;
}