Swift
Swift
ChartURL - Create a Signed URL
See more HTTP Misc Examples
Demonstrates how to create a signed URL for ChartURL.Chilkat Swift Downloads
func chilkatTest() {
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let crypt = CkoCrypt2()!
// Example key: "dek-d7a46236eda961a6c3c18ffcc6b077ba87d27e9ae85f7842c6d427c265dd5f69d5131308d93332353d4a55a4b1160fcf516515a4a9f0aa50fbf2d7a2e7d0f1c5"
var key: String? = "charturl-sign-encrypt-key"
// Example token: "dt-RwYN"
var token: String? = "charturl-token"
var slug: String? = "weekly-activity"
var data: String? = "{ \"options\": {\"data\": {\"columns\": [[\"This Week\",10,13],[\"Last Week\",9,5]]}}}"
crypt.hashAlgorithm = "SHA256"
crypt.macAlgorithm = "HMAC"
crypt.setMacKeyString(key: key)
crypt.encodingMode = "base64"
let json = CkoJsonObject()!
json.load(json: data)
print("json = \(json.emit()!)")
var sig: String? = crypt.macStringENC(inText: json.emit())
let sbUrl = CkoStringBuilder()!
sbUrl.append(value: "https://charturl.com/i/")
sbUrl.append(value: token)
sbUrl.append(value: "/")
sbUrl.append(value: slug)
sbUrl.append(value: "?d=")
sbUrl.append(value: crypt.encodeString(inStr: json.emit(), charset: "utf-8", encoding: "url"))
sbUrl.append(value: "&s=")
sbUrl.append(value: crypt.encodeString(inStr: sig, charset: "utf-8", encoding: "url"))
print("Signed URL: \(sbUrl.getAsString()!)")
}