Sample code for 30+ languages & platforms
Tcl

ChartURL - Create a Signed URL

See more HTTP Misc Examples

Demonstrates how to create a signed URL for ChartURL.

Chilkat Tcl Downloads

Tcl

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