Rust Requires Chilkat v11.0.0+
Rust
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
// 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;
}