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
(PureBasic) VoiceBase -- Compound Expression SearchDemonstrates how to do a VoiceBase compound expression search. See VoiceBase Search for more details about Search.
IncludeFile "CkJsonObject.pb" IncludeFile "CkDateTime.pb" IncludeFile "CkHttp.pb" IncludeFile "CkDtObj.pb" IncludeFile "CkHttpRequest.pb" IncludeFile "CkHttpResponse.pb" IncludeFile "CkStringBuilder.pb" Procedure ChilkatExample() ; This example assumes the Chilkat HTTP API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; Insert your Bearer token here: accessToken.s = "VOICEBASE_TOKEN" http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf req.i = CkHttpRequest::ckCreate() If req.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttpRequest::setCkHttpVerb(req, "GET") CkHttpRequest::setCkPath(req, "/v2-beta/media") ; Add the access (bearer) token to the request, which is a header ; having the following format: ; Authorization: Bearer <userAccessToken> sbAuth.i = CkStringBuilder::ckCreate() If sbAuth.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckAppend(sbAuth,"Bearer ") CkStringBuilder::ckAppend(sbAuth,accessToken) CkHttpRequest::ckAddHeader(req,"Authorization",CkStringBuilder::ckGetAsString(sbAuth)) ; Search for media containing the terms any of the terms "test", "number", or "three" CkHttpRequest::ckAddParam(req,"query",Chr(34) + "test" + Chr(34) + " OR " + Chr(34) + "number" + Chr(34) + " OR " + Chr(34) + "three" + Chr(34)) resp.i = CkHttp::ckSynchronousRequest(http,"apis.voicebase.com",443,1,req) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkHttpRequest::ckDispose(req) CkStringBuilder::ckDispose(sbAuth) ProcedureReturn EndIf ; Examine the response status code and body. Debug "Response status code = " + Str(CkHttpResponse::ckStatusCode(resp)) ; The response should be JSON, even if an error. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoad(json,CkHttpResponse::ckBodyStr(resp)) CkJsonObject::setCkEmitCompact(json, 0) ; A successful response will have a status code = 200 If CkHttpResponse::ckStatusCode(resp) <> 200 Debug "Failed." Else Debug "mediaId: " + CkJsonObject::ckStringOf(json,"mediaId") Debug "href: " + CkJsonObject::ckStringOf(json,"_links.self.href") Debug "status: " + CkJsonObject::ckStringOf(json,"status") Debug "Success." EndIf CkHttpResponse::ckDispose(resp) ; See the sample JSON response below.. ; Iterate over the JSON like this: dt.i = CkDateTime::ckCreate() If dt.i = 0 Debug "Failed to create object." ProcedureReturn EndIf mediaCount.i = CkJsonObject::ckSizeOfArray(json,"media") i.i = 0 While i < mediaCount CkJsonObject::setCkI(json, i) Debug "-- " + Str(i) + " --" Debug " mediaId: " + CkJsonObject::ckStringOf(json,"media[i].mediaId") Debug " status: " + CkJsonObject::ckStringOf(json,"media[i].status") Debug " contentType: " + CkJsonObject::ckStringOf(json,"media[i].metadata.contentType") Debug " milliseconds: " + CkJsonObject::ckStringOf(json,"media[i].metadata.length.milliseconds") Debug " descriptive: " + CkJsonObject::ckStringOf(json,"media[i].metadata.length.descriptive") dateCreated.s = CkJsonObject::ckStringOf(json,"media[i].dateCreated") CkDateTime::ckSetFromTimestamp(dt,dateCreated) localTime.i = 1 dtObj.i = CkDateTime::ckGetDtObj(dt,localTime) Debug " " + Str(CkDtObj::ckMonth(dtObj)) + "/" + Str(CkDtObj::ckDay(dtObj)) + " " + Str(CkDtObj::ckHour(dtObj)) + ":" + Str(CkDtObj::ckMinute(dtObj)) CkDtObj::ckDispose(dtObj) i = i + 1 Wend Debug "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" ; } ; ] ; } CkHttp::ckDispose(http) CkHttpRequest::ckDispose(req) CkStringBuilder::ckDispose(sbAuth) CkJsonObject::ckDispose(json) CkDateTime::ckDispose(dt) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.