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) CallRail API - Listing All CallsReturns a paginated list of all calls in the target account. For more information, see https://apidocs.callrail.com/#listing-all-calls
IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Implements the following CURL command: ; curl -H "Authorization: Token token={api_token}" \ ; -X GET \ ; "https://api.callrail.com/v3/a/{account_id}/calls.json" ; Use the following online tool to generate HTTP code from a CURL command ; Convert a cURL Command to HTTP Source Code CkHttp::ckSetRequestHeader(http,"Authorization","Token token={api_token}") sbResponseBody.i = CkStringBuilder::ckCreate() If sbResponseBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkHttp::ckQuickGetSb(http,"https://api.callrail.com/v3/a/{account_id}/calls.json",sbResponseBody) If success = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) ProcedureReturn EndIf jResp.i = CkJsonObject::ckCreate() If jResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(jResp,sbResponseBody) CkJsonObject::setCkEmitCompact(jResp, 0) Debug "Response Body:" Debug CkJsonObject::ckEmit(jResp) respStatusCode.i = CkHttp::ckLastStatus(http) Debug "Response Status Code = " + Str(respStatusCode) If respStatusCode >= 400 Debug "Response Header:" Debug CkHttp::ckLastHeader(http) Debug "Failed." CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndIf ; Sample JSON response: ; (Sample code for parsing the JSON response is shown below) ; { ; "page": 1, ; "per_page": 100, ; "total_pages": 1, ; "total_records": 9, ; "calls": [ ; { ; "answered": false, ; "business_phone_number": null, ; "customer_city": "Denver", ; "customer_country": "US", ; "customer_name": "RUEGSEGGER SIMO", ; "customer_phone_number": "+13036231131", ; "customer_state": "CO", ; "direction": "inbound", ; "duration": 4, ; "id": "CAL8154748ae6bd4e278a7cddd38a662f4f", ; "recording": "https://api.callrail.com/v3/a/227799611/calls/111222333/recording.json", ; "recording_duration": "27", ; "recording_player": "https://app.callrail.com/calls/111222333/recording?access_key=3b91eb7f7cc08a4d01ed", ; "start_time": "2017-01-24T11:27:48.119-05:00", ; "tracking_phone_number": "+13038163491", ; "voicemail": false, ; "agent_email": "gil@televised.com" ; }, ; { ; "answered": false, ; "business_phone_number": null, ; "customer_city": "Blue Ridge", ; "customer_country": "US", ; "customer_name": "BLUE RIDGE, GA", ; "customer_phone_number": "+17064558047", ; "customer_state": "GA", ; "direction": "inbound", ; "duration": 16, ; "id": "CAL8154748ae6bd4e278a7cddd38a662f4f", ; "recording": null, ; "recording_duration": null, ; "recording_player": null, ; "start_time": "2017-01-24T19:50:03.456-05:00", ; "tracking_phone_number": "+17708243899", ; "voicemail": false, ; "agent_email": "elbert@bpp.com" ; } ; ] ; } ; Sample code for parsing the JSON response... ; Use the following online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON answered.i business_phone_number.s customer_city.s customer_country.s customer_name.s customer_phone_number.s customer_state.s direction.s duration.i id.s recording.s recording_duration.s recording_player.s start_time.s tracking_phone_number.s voicemail.i agent_email.s page.i = CkJsonObject::ckIntOf(jResp,"page") per_page.i = CkJsonObject::ckIntOf(jResp,"per_page") total_pages.i = CkJsonObject::ckIntOf(jResp,"total_pages") total_records.i = CkJsonObject::ckIntOf(jResp,"total_records") i.i = 0 count_i.i = CkJsonObject::ckSizeOfArray(jResp,"calls") While i < count_i CkJsonObject::setCkI(jResp, i) answered = CkJsonObject::ckBoolOf(jResp,"calls[i].answered") business_phone_number = CkJsonObject::ckStringOf(jResp,"calls[i].business_phone_number") customer_city = CkJsonObject::ckStringOf(jResp,"calls[i].customer_city") customer_country = CkJsonObject::ckStringOf(jResp,"calls[i].customer_country") customer_name = CkJsonObject::ckStringOf(jResp,"calls[i].customer_name") customer_phone_number = CkJsonObject::ckStringOf(jResp,"calls[i].customer_phone_number") customer_state = CkJsonObject::ckStringOf(jResp,"calls[i].customer_state") direction = CkJsonObject::ckStringOf(jResp,"calls[i].direction") duration = CkJsonObject::ckIntOf(jResp,"calls[i].duration") id = CkJsonObject::ckStringOf(jResp,"calls[i].id") recording = CkJsonObject::ckStringOf(jResp,"calls[i].recording") recording_duration = CkJsonObject::ckStringOf(jResp,"calls[i].recording_duration") recording_player = CkJsonObject::ckStringOf(jResp,"calls[i].recording_player") start_time = CkJsonObject::ckStringOf(jResp,"calls[i].start_time") tracking_phone_number = CkJsonObject::ckStringOf(jResp,"calls[i].tracking_phone_number") voicemail = CkJsonObject::ckBoolOf(jResp,"calls[i].voicemail") agent_email = CkJsonObject::ckStringOf(jResp,"calls[i].agent_email") i = i + 1 Wend CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.