SQL Server
SQL Server
VoiceBase -- Hello World (Get the Media Collection Listing)
See more VoiceBase Examples
This example serves to both verify that your Bearer Token is valid by retrieving JSON that contains information about your media collection.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
DECLARE @iTmp0 int
DECLARE @iTmp1 int
DECLARE @iTmp2 int
DECLARE @iTmp3 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat HTTP API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- Insert your Bearer token here:
DECLARE @accessToken nvarchar(4000)
SELECT @accessToken = 'VOICEBASE_TOKEN'
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Add the access (bearer) token to the request, which is a header
-- having the following format:
-- Authorization: Bearer <userAccessToken>
DECLARE @sbAuth int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbAuth OUT
DECLARE @success int
EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, 'Bearer '
EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, @accessToken
EXEC sp_OAMethod @sbAuth, 'GetAsString', @sTmp0 OUT
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Authorization', @sTmp0
DECLARE @strJson nvarchar(4000)
EXEC sp_OAMethod @http, 'QuickGetStr', @strJson OUT, 'https://apis.voicebase.com/v2-beta/media'
EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbAuth
RETURN
END
-- The response should be JSON, even if an error.
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'Load', @success OUT, @strJson
EXEC sp_OASetProperty @json, 'EmitCompact', 0
EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT
PRINT 'Response status code = ' + @iTmp0
EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT
IF @iTmp0 <> 200
BEGIN
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Failed'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbAuth
EXEC @hr = sp_OADestroy @json
RETURN
END
-- See the sample JSON response below..
-- Iterate over the JSON like this:
DECLARE @dt int
EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @dt OUT
DECLARE @dtObj int
EXEC @hr = sp_OACreate 'Chilkat.DtObj', @dtObj OUT
DECLARE @mediaCount int
EXEC sp_OAMethod @json, 'SizeOfArray', @mediaCount OUT, 'media'
DECLARE @i int
SELECT @i = 0
WHILE @i < @mediaCount
BEGIN
EXEC sp_OASetProperty @json, 'I', @i
PRINT '-- ' + @i + ' --'
EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'media[i].mediaId'
PRINT ' mediaId: ' + @sTmp0
EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'media[i].status'
PRINT ' status: ' + @sTmp0
EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'media[i].metadata.contentType'
PRINT ' contentType: ' + @sTmp0
EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'media[i].metadata.length.milliseconds'
PRINT ' milliseconds: ' + @sTmp0
EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'media[i].metadata.length.descriptive'
PRINT ' descriptive: ' + @sTmp0
DECLARE @dateCreated nvarchar(4000)
EXEC sp_OAMethod @json, 'StringOf', @dateCreated OUT, 'media[i].dateCreated'
EXEC sp_OAMethod @dt, 'SetFromTimestamp', @success OUT, @dateCreated
DECLARE @localTime int
SELECT @localTime = 1
EXEC sp_OAMethod @dt, 'ToDtObj', NULL, @localTime, @dtObj
EXEC sp_OAGetProperty @dtObj, 'Month', @iTmp0 OUT
EXEC sp_OAGetProperty @dtObj, 'Day', @iTmp1 OUT
EXEC sp_OAGetProperty @dtObj, 'Hour', @iTmp2 OUT
EXEC sp_OAGetProperty @dtObj, 'Minute', @iTmp3 OUT
PRINT ' ' + @iTmp0 + '/' + @iTmp1 + ' ' + @iTmp2 + ':' + @iTmp3
SELECT @i = @i + 1
END
PRINT 'Finished.'
-- A sample JSON response:
-- {
-- "_links": {
-- "self": {
-- "href": "/v2-beta/media"
-- }
-- },
-- "media": [
-- {
-- "mediaId": "26063536-FFFF-4020-93ba-0878112d834b",
-- "status": "finished",
-- "metadata": {
-- "contentType": "audio/x-wav",
-- "length": {
-- "milliseconds": 85141,
-- "descriptive": "85.0 sec"
-- }
-- },
-- "dateCreated": "2017-01-19T16:49:32.000Z"
-- },
-- {
-- "mediaId": "8163fbbc-FFFF-4794-aa95-045420bb321d",
-- "status": "finished",
-- "metadata": {
-- "contentType": "audio/x-wav",
-- "length": {
-- "milliseconds": 65342,
-- "descriptive": "65.0 sec"
-- }
-- },
-- "dateCreated": "2017-01-19T20:08:49.000Z"
-- },
-- ...
-- ...
-- {
-- "mediaId": "b01e27be-FFFF-4b62-8802-6dc66a75c4d3",
-- "status": "finished",
-- "metadata": {
-- "contentType": "audio/x-wav",
-- "length": {
-- "milliseconds": 11581,
-- "descriptive": "11.0 sec"
-- }
-- },
-- "dateCreated": "2017-02-06T20:55:43.000Z"
-- }
-- ]
-- }
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @sbAuth
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @dt
EXEC @hr = sp_OADestroy @dtObj
END
GO