Sample code for 30+ languages & platforms
Xbase++

ChartURL - Create a Signed URL

See more HTTP Misc Examples

Demonstrates how to create a signed URL for ChartURL.

Chilkat Xbase++ Downloads

Xbase++
LOCAL oCrypt
LOCAL cKey
LOCAL cToken
LOCAL cSlug
LOCAL cData
LOCAL oJson
LOCAL cSig
LOCAL oSbUrl

//  This example assumes the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oCrypt := CreateObject("Chilkat.Crypt2")

//  Example key: "dek-d7a46236eda961a6c3c18ffcc6b077ba87d27e9ae85f7842c6d427c265dd5f69d5131308d93332353d4a55a4b1160fcf516515a4a9f0aa50fbf2d7a2e7d0f1c5"
cKey := "charturl-sign-encrypt-key"
//  Example token: "dt-RwYN"
cToken := "charturl-token"

cSlug := "weekly-activity"
cData := '{ "options": {"data": {"columns": [["This Week",10,13],["Last Week",9,5]]}}}'

oCrypt:HashAlgorithm := "SHA256"
oCrypt:MacAlgorithm := "HMAC"
oCrypt:SetMacKeyString(cKey)
oCrypt:EncodingMode := "base64"

oJson := CreateObject("Chilkat.JsonObject")
oJson:Load(cData)
? "json = " + oJson:Emit()

cSig := oCrypt:MacStringENC(oJson:Emit())

oSbUrl := CreateObject("Chilkat.StringBuilder")
oSbUrl:Append("https://charturl.com/i/")
oSbUrl:Append(cToken)
oSbUrl:Append("/")
oSbUrl:Append(cSlug)
oSbUrl:Append("?d=")
oSbUrl:Append(oCrypt:EncodeString(oJson:Emit(), "utf-8", "url"))
oSbUrl:Append("&s=")
oSbUrl:Append(oCrypt:EncodeString(cSig, "utf-8", "url"))

? "Signed URL: " + oSbUrl:GetAsString()

oCrypt:destroy()
oJson:destroy()
oSbUrl:destroy()