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
(DataFlex) VoiceBase -- Upload a Media File with a JSON ConfigurationThis example uploads a media file and also provides a configuration file.
Use ChilkatAx-win32.pkg Procedure Test String sAccessToken Handle hoHttp Variant vReq Handle hoReq Handle hoSbAuth Boolean iSuccess Boolean iSuccess Handle hoJson Variant vJConfig Handle hoJConfig Variant vJKeywords Handle hoJKeywords Variant vJGroups Handle hoJGroups Variant vResp Handle hoResp String sTemp1 Integer iTemp1 Boolean bTemp1 // This example assumes the Chilkat HTTP API to have been previously unlocked. // See Global Unlock Sample for sample code. // Insert your Bearer token here: Move "VOICEBASE_TOKEN" To sAccessToken Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Get Create (RefClass(cComChilkatHttpRequest)) To hoReq If (Not(IsComObjectCreated(hoReq))) Begin Send CreateComObject of hoReq End Set ComHttpVerb Of hoReq To "POST" Set ComPath Of hoReq To "/v2-beta/media" Set ComContentType Of hoReq To "multipart/form-data" // Add the access (bearer) token to the request, which is a header // having the following format: // Authorization: Bearer <userAccessToken> Get Create (RefClass(cComChilkatStringBuilder)) To hoSbAuth If (Not(IsComObjectCreated(hoSbAuth))) Begin Send CreateComObject of hoSbAuth End Get ComAppend Of hoSbAuth "Bearer " To iSuccess Get ComAppend Of hoSbAuth sAccessToken To iSuccess Get ComGetAsString Of hoSbAuth To sTemp1 Send ComAddHeader To hoReq "Authorization" sTemp1 Get ComAddFileForUpload2 Of hoReq "media" "qa_data/wav/msg_123_abc.wav" "audio/x-wav" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoReq To sTemp1 Showln sTemp1 Procedure_Return End // 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. Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get ComUpdateString Of hoJson "configuration.publish.callbacks[0].url" "https://www.chilkatsoft.com/dss/update_vm_transcription.asp" To iSuccess Get ComUpdateString Of hoJson "configuration.publish.callbacks[0].method" "POST" To iSuccess Get ComUpdateString Of hoJson "configuration.publish.callbacks[0].include[0]" "transcripts" To iSuccess Get ComUpdateString Of hoJson "configuration.publish.callbacks[0].include[1]" "keywords" To iSuccess Get ComUpdateString Of hoJson "configuration.publish.callbacks[0].include[2]" "topics" To iSuccess Get ComUpdateString Of hoJson "configuration.publish.callbacks[0].include[3]" "metadata" To iSuccess Get ComObjectOf Of hoJson "configuration" To vJConfig If (IsComObject(vJConfig)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoJConfig Set pvComObject Of hoJConfig To vJConfig End Get ComAppendObject Of hoJConfig "keywords" To vJKeywords If (IsComObject(vJKeywords)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoJKeywords Set pvComObject Of hoJKeywords To vJKeywords End Get ComAppendArray Of hoJKeywords "groups" To vJGroups If (IsComObject(vJGroups)) Begin Get Create (RefClass(cComChilkatJsonArray)) To hoJGroups Set pvComObject Of hoJGroups To vJGroups End Send Destroy of hoJGroups Send Destroy of hoJKeywords Send Destroy of hoJConfig // Add the configuration JSON to the upload. Get ComEmit Of hoJson To sTemp1 Send ComAddParam To hoReq "configuration" sTemp1 // Do the upload.. Get pvComObject of hoReq to vReq Get ComSynchronousRequest Of hoHttp "apis.voicebase.com" 443 True vReq To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End // Examine the response status code and body. Get ComStatusCode Of hoResp To iTemp1 Showln "Response status code = " iTemp1 // The response should be JSON, even if an error. Get ComBodyStr Of hoResp To sTemp1 Get ComLoad Of hoJson sTemp1 To iSuccess Set ComEmitCompact Of hoJson To False Get ComEmit Of hoJson To sTemp1 Showln sTemp1 // A successful response will have a status code = 200 Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 <> 200) Begin Showln "Failed." End Else Begin Get ComStringOf Of hoJson "mediaId" To sTemp1 Showln "mediaId: " sTemp1 Get ComStringOf Of hoJson "_links.self.href" To sTemp1 Showln "href: " sTemp1 Get ComStringOf Of hoJson "status" To sTemp1 Showln "status: " sTemp1 Showln "Success." End Send Destroy of hoResp // 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": {} // End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.