Rust
Rust
ChartURL - Create a Signed URL
See more HTTP Misc Examples
Demonstrates how to create a signed URL for ChartURL.Chilkat Rust Downloads
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let crypt = chilkat::Crypt2::new();
// Example key: "dek-d7a46236eda961a6c3c18ffcc6b077ba87d27e9ae85f7842c6d427c265dd5f69d5131308d93332353d4a55a4b1160fcf516515a4a9f0aa50fbf2d7a2e7d0f1c5"
let key = "charturl-sign-encrypt-key".to_string();
// Example token: "dt-RwYN"
let token = "charturl-token".to_string();
let slug = "weekly-activity".to_string();
let data = "{ \"options\": {\"data\": {\"columns\": [[\"This Week\",10,13],[\"Last Week\",9,5]]}}}".to_string();
crypt.set_hash_algorithm("SHA256");
crypt.set_mac_algorithm("HMAC");
let _ = crypt.set_mac_key_string(&key);
crypt.set_encoding_mode("base64");
let json = chilkat::JsonObject::new();
let _ = json.load(&data);
println!("json = {}", json.emit().unwrap_or_default());
let sig = crypt.mac_string_enc(&json.emit().unwrap_or_default()).unwrap_or_default();
let sb_url = chilkat::StringBuilder::new();
let _ = sb_url.append("https://charturl.com/i/");
let _ = sb_url.append(&token);
let _ = sb_url.append("/");
let _ = sb_url.append(&slug);
let _ = sb_url.append("?d=");
let _ = sb_url.append(&crypt.encode_string(&json.emit().unwrap_or_default(), "utf-8", "url").unwrap_or_default());
let _ = sb_url.append("&s=");
let _ = sb_url.append(&crypt.encode_string(&sig, "utf-8", "url").unwrap_or_default());
println!("Signed URL: {}", sb_url.get_as_string().unwrap_or_default());