Sample code for 30+ languages & platforms
Lianja Requires Chilkat v11.0.0+

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