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