Sample code for 30+ languages & platforms
Lianja

VoiceBase -- Compound Expression Search

See more VoiceBase Examples

Demonstrates how to do a VoiceBase compound expression search. See VoiceBase Search for more details about Search.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

// 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"

loHttp = createobject("CkHttp")

loReq = createobject("CkHttpRequest")
loReq.HttpVerb = "GET"
loReq.Path = "/v2-beta/media"

// Add the access (bearer) token to the request, which is a header
// having the following format:
// Authorization: Bearer <userAccessToken>
loSbAuth = createobject("CkStringBuilder")
loSbAuth.Append("Bearer ")
loSbAuth.Append(lcAccessToken)
loReq.AddHeader("Authorization",loSbAuth.GetAsString())

// Search for media containing the terms any of the terms "test", "number", or "three"
loReq.AddParam("query",'"test" OR "number" OR "three"')

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpSReq("apis.voicebase.com",443,.T.,loReq,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loReq
    release loSbAuth
    release loResp
    return
endif

// Examine the response status code and body.
? "Response status code = " + str(loResp.StatusCode)

// The response should be JSON, even if an error.
loJson = createobject("CkJsonObject")
loJson.Load(loResp.BodyStr)
loJson.EmitCompact = .F.

// 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

// See the sample JSON response below..

// Iterate over the JSON like this:
loDt = createobject("CkDateTime")
loDtObj = createobject("CkDtObj")

lnMediaCount = loJson.SizeOfArray("media")
i = 0
do while i < lnMediaCount
    loJson.I = i

    ? "-- " + str(i) + " --"
    ? "  mediaId: " + loJson.StringOf("media[i].mediaId")
    ? "  status: " + loJson.StringOf("media[i].status")
    ? "  contentType: " + loJson.StringOf("media[i].metadata.contentType")
    ? "  milliseconds: " + loJson.StringOf("media[i].metadata.length.milliseconds")
    ? "  descriptive: " + loJson.StringOf("media[i].metadata.length.descriptive")
    lcDateCreated = loJson.StringOf("media[i].dateCreated")
    loDt.SetFromTimestamp(lcDateCreated)

    llLocalTime = .T.
    loDt.ToDtObj(llLocalTime,loDtObj)

    ? "  " + str(loDtObj.Month) + "/" + str(loDtObj.Day) + "  " + str(loDtObj.Hour) + ":" + str(loDtObj.Minute)

    i = i + 1
enddo
? "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"
//     }
//   ]
// }


release loHttp
release loReq
release loSbAuth
release loResp
release loJson
release loDt
release loDtObj