Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) VoiceBase -- Upload a Media File with a JSON ConfigurationThis example uploads a media file and also provides a configuration file.
LOCAL lcAccessToken LOCAL loHttp LOCAL loReq LOCAL loSbAuth LOCAL lnSuccess LOCAL loJson LOCAL loJConfig LOCAL loJKeywords LOCAL loJGroups LOCAL loResp * This example assumes the Chilkat HTTP API to have been previously unlocked. * See Global Unlock Sample for sample code. * Insert your Bearer token here: lcAccessToken = "VOICEBASE_TOKEN" * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('Chilkat.Http') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.HttpRequest') loReq = CreateObject('Chilkat.HttpRequest') loReq.HttpVerb = "POST" loReq.Path = "/v2-beta/media" loReq.ContentType = "multipart/form-data" * Add the access (bearer) token to the request, which is a header * having the following format: * Authorization: Bearer <userAccessToken> * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbAuth = CreateObject('Chilkat.StringBuilder') loSbAuth.Append("Bearer ") loSbAuth.Append(lcAccessToken) loReq.AddHeader("Authorization",loSbAuth.GetAsString()) lnSuccess = loReq.AddFileForUpload2("media","qa_data/wav/msg_123_abc.wav","audio/x-wav") IF (lnSuccess <> 1) THEN ? loReq.LastErrorText RELEASE loHttp RELEASE loReq RELEASE loSbAuth CANCEL ENDIF * This is the JSON of the configuration to be added as a parameter to the upload: * (Obviously, if you want a callback, you would use a URL that goes to your own web server..) * { * "configuration":{ * "publish":{ * "callbacks":[ * { * "url":"https://www.chilkatsoft.com/dss/update_vm_transcription.asp", * "method":"POST", * "include":[ * "transcripts", * "keywords", * "topics", * "metadata" * ] * } * ] * }, * "keywords":{ * "groups":[] * } * } * } * This code produces the above JSON. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.UpdateString("configuration.publish.callbacks[0].url","https://www.chilkatsoft.com/dss/update_vm_transcription.asp") loJson.UpdateString("configuration.publish.callbacks[0].method","POST") loJson.UpdateString("configuration.publish.callbacks[0].include[0]","transcripts") loJson.UpdateString("configuration.publish.callbacks[0].include[1]","keywords") loJson.UpdateString("configuration.publish.callbacks[0].include[2]","topics") loJson.UpdateString("configuration.publish.callbacks[0].include[3]","metadata") loJConfig = loJson.ObjectOf("configuration") loJKeywords = loJConfig.AppendObject("keywords") loJGroups = loJKeywords.AppendArray("groups") RELEASE loJGroups RELEASE loJKeywords RELEASE loJConfig * Add the configuration JSON to the upload. loReq.AddParam("configuration",loJson.Emit()) * Do the upload.. loResp = loHttp.SynchronousRequest("apis.voicebase.com",443,1,loReq) IF (loHttp.LastMethodSuccess <> 1) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loReq RELEASE loSbAuth RELEASE loJson CANCEL ENDIF * Examine the response status code and body. ? "Response status code = " + STR(loResp.StatusCode) * The response should be JSON, even if an error. loJson.Load(loResp.BodyStr) loJson.EmitCompact = 0 ? loJson.Emit() * A successful response will have a status code = 200 IF (loResp.StatusCode <> 200) THEN ? "Failed." ELSE ? "mediaId: " + loJson.StringOf("mediaId") ? "href: " + loJson.StringOf("_links.self.href") ? "status: " + loJson.StringOf("status") ? "Success." ENDIF RELEASE loResp * Here is an example of a successful response: * { * "_links": { * "self": { * "href": "/v2-beta/media/856a1e85-c847-4c3c-b7a4-6cf15cd51db4" * } * }, * "mediaId": "856a1e85-c847-4c3c-b7a4-6cf15cd51db4", * "status": "accepted", * "metadata": {} * RELEASE loHttp RELEASE loReq RELEASE loSbAuth RELEASE loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.