SQL Server
SQL Server
ChartURL - Create a Signed URL
See more HTTP Misc Examples
Demonstrates how to create a signed URL for ChartURL.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @sTmp1 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @crypt int
EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Example key: "dek-d7a46236eda961a6c3c18ffcc6b077ba87d27e9ae85f7842c6d427c265dd5f69d5131308d93332353d4a55a4b1160fcf516515a4a9f0aa50fbf2d7a2e7d0f1c5"
DECLARE @key nvarchar(4000)
SELECT @key = 'charturl-sign-encrypt-key'
-- Example token: "dt-RwYN"
DECLARE @token nvarchar(4000)
SELECT @token = 'charturl-token'
DECLARE @slug nvarchar(4000)
SELECT @slug = 'weekly-activity'
DECLARE @data nvarchar(4000)
SELECT @data = '{ "options": {"data": {"columns": [["This Week",10,13],["Last Week",9,5]]}}}'
EXEC sp_OASetProperty @crypt, 'HashAlgorithm', 'SHA256'
EXEC sp_OASetProperty @crypt, 'MacAlgorithm', 'HMAC'
DECLARE @success int
EXEC sp_OAMethod @crypt, 'SetMacKeyString', @success OUT, @key
EXEC sp_OASetProperty @crypt, 'EncodingMode', 'base64'
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'Load', @success OUT, @data
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT 'json = ' + @sTmp0
DECLARE @sig nvarchar(4000)
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
EXEC sp_OAMethod @crypt, 'MacStringENC', @sig OUT, @sTmp0
DECLARE @sbUrl int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbUrl OUT
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, 'https://charturl.com/i/'
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, @token
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, '/'
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, @slug
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, '?d='
EXEC sp_OAMethod @json, 'Emit', @sTmp1 OUT
EXEC sp_OAMethod @crypt, 'EncodeString', @sTmp0 OUT, @sTmp1, 'utf-8', 'url'
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, @sTmp0
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, '&s='
EXEC sp_OAMethod @crypt, 'EncodeString', @sTmp0 OUT, @sig, 'utf-8', 'url'
EXEC sp_OAMethod @sbUrl, 'Append', @success OUT, @sTmp0
EXEC sp_OAMethod @sbUrl, 'GetAsString', @sTmp0 OUT
PRINT 'Signed URL: ' + @sTmp0
EXEC @hr = sp_OADestroy @crypt
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @sbUrl
END
GO