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) Xero Get Folders (Files API)Demonstrates how to retrieve the list of folders. Note: This example requires Chilkat v9.5.0.64 or greater.
IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonArray.pb" IncludeFile "CkRest.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; Note: Requires Chilkat v9.5.0.64 or greater. ; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Before sending REST API calls, the REST object needs to be ; initialized for OAuth1. ; See Xero 2-Legged OAuth1 Setup for sample code. ; Assuming the REST object's OAuth1 authenticator is setup, and the initial ; connection was made, we may now send REST HTTP requests.. ; Get the full list of folders (in the FILES API) sbJson.i = CkStringBuilder::ckCreate() If sbJson.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkRest::ckFullRequestNoBodySb(rest,"GET","/files.xro/1.0/Folders",sbJson) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbJson) ProcedureReturn EndIf ; The response is a JSON array. jsonArr.i = CkJsonArray::ckCreate() If jsonArr.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonArray::ckLoadSb(jsonArr,sbJson) CkJsonArray::setCkEmitCompact(jsonArr, 0) ; A 200 response is expected for actual success. If CkRest::ckResponseStatusCode(rest) <> 200 Debug CkJsonArray::ckEmit(jsonArr) CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbJson) CkJsonArray::ckDispose(jsonArr) ProcedureReturn EndIf Debug CkJsonArray::ckEmit(jsonArr) ; The JSON list of folders looks like this: ; See the code below showing how to iterate over the folders.. ; [ ; { ; "Name": "Inbox", ; "FileCount": 0, ; "Email": "xero.inbox.bt0xx.99ha3l7a28m7ghyn@xerofiles.com", ; "IsInbox": true, ; "Id": "de386667-2532-49d3-8ad8-b7727b128ea2" ; }, ; { ; "Name": "Contracts", ; "FileCount": 0, ; "IsInbox": false, ; "Id": "36f15a6e-74f3-42fd-8797-e288b9aae234" ; }, ; { ; "Name": "Images", ; "FileCount": 0, ; "IsInbox": false, ; "Id": "0ffca059-f2f1-4271-8de9-4b87c8c2c638" ; } ; ] i.i = 0 numFolders.i = CkJsonArray::ckSize(jsonArr) While i < numFolders json.i = CkJsonArray::ckObjectAt(jsonArr,i) Debug "Name: " + CkJsonObject::ckStringOf(json,"Name") Debug "FileCount: " + Str(CkJsonObject::ckIntOf(json,"FileCount")) Debug "IsInbox: " + Str(CkJsonObject::ckBoolOf(json,"IsInbox")) Debug "Id: " + CkJsonObject::ckStringOf(json,"Id") Debug "--" CkJsonObject::ckDispose(json) i = i + 1 Wend CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbJson) CkJsonArray::ckDispose(jsonArr) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.