(Tcl) ChartURL - Create a Signed URL
Demonstrates how to create a signed URL for ChartURL.
load ./chilkat.dll
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set crypt [new_CkCrypt2]
# Example key: "dek-d7a46236eda961a6c3c18ffcc6b077ba87d27e9ae85f7842c6d427c265dd5f69d5131308d93332353d4a55a4b1160fcf516515a4a9f0aa50fbf2d7a2e7d0f1c5"
set key "charturl-sign-encrypt-key"
# Example token: "dt-RwYN"
set token "charturl-token"
set slug "weekly-activity"
set data "{ \"options\": {\"data\": {\"columns\": [[\"This Week\",10,13],[\"Last Week\",9,5]]}}}"
CkCrypt2_put_HashAlgorithm $crypt "SHA256"
CkCrypt2_put_MacAlgorithm $crypt "HMAC"
CkCrypt2_SetMacKeyString $crypt $key
CkCrypt2_put_EncodingMode $crypt "base64"
set json [new_CkJsonObject]
CkJsonObject_Load $json $data
puts "json = [CkJsonObject_emit $json]"
set sig [CkCrypt2_macStringENC $crypt [CkJsonObject_emit $json]]
set sbUrl [new_CkStringBuilder]
CkStringBuilder_Append $sbUrl "https://charturl.com/i/"
CkStringBuilder_Append $sbUrl $token
CkStringBuilder_Append $sbUrl "/"
CkStringBuilder_Append $sbUrl $slug
CkStringBuilder_Append $sbUrl "?d="
CkStringBuilder_Append $sbUrl [CkCrypt2_encodeString $crypt [CkJsonObject_emit $json] "utf-8" "url"]
CkStringBuilder_Append $sbUrl "&s="
CkStringBuilder_Append $sbUrl [CkCrypt2_encodeString $crypt $sig "utf-8" "url"]
puts "Signed URL: [CkStringBuilder_getAsString $sbUrl]"
delete_CkCrypt2 $crypt
delete_CkJsonObject $json
delete_CkStringBuilder $sbUrl
|