Sample code for 30+ languages & platforms
Swift

ChartURL - Create a Signed URL

See more HTTP Misc Examples

Demonstrates how to create a signed URL for ChartURL.

Chilkat Swift Downloads

Swift

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()!)")

}