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 ReceiptsDemonstrates how to get all receipts from Xero accounting. Note: This example requires Chilkat v9.5.0.64 or greater.
IncludeFile "CkXml.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkRest.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.. ; Note: If query parameters are to be included, they can be added by calling ; the rest.AddQueryParam method, once per query parameter name/value. ; Do not try to add the query params to the uriPath passed to a method such as FullRequestNoBodySb. ; The reason is that OAuth1 needs to include the query params as part of the OAuth1 signature, ; and the only way it knows about them is if they are explicitly added by calling AddQueryParam. ; (Otherwise you'll get a 403 authentication error response.) ; Get the full list of receipts. sbXml.i = CkStringBuilder::ckCreate() If sbXml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkRest::ckFullRequestNoBodySb(rest,"GET","/api.xro/2.0/Receipts",sbXml) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbXml) ProcedureReturn EndIf ; A 200 response is expected for actual success. If CkRest::ckResponseStatusCode(rest) <> 200 Debug CkStringBuilder::ckGetAsString(sbXml) CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbXml) ProcedureReturn EndIf ; Iterate over the receipts and get some information.. bAutoTrim.i = 0 xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadSb(xml,sbXml,bAutoTrim) CkXml::ckSaveXml(xml,"qa_cache/xero_receipts.xml") ; How many records exist? recordCount.i = CkXml::ckNumChildrenAt(xml,"Receipts") Debug "numRecords = " + Str(recordCount) i.i = 0 While i < recordCount CkXml::setCkI(xml, i) Debug "ReceiptID: " + CkXml::ckGetChildContent(xml,"Receipts|Receipt[i]|ReceiptID") Debug "UserID: " + CkXml::ckGetChildContent(xml,"Receipts|Receipt[i]|User|UserID") Debug "ReceiptNumber: " + Str(CkXml::ckGetChildIntValue(xml,"Receipts|Receipt[i]|ReceiptNumber")) Debug "----" i = i + 1 Wend ; The output looks like this: ; numRecords = 2 ; ReceiptID: c4f40e59-c390-0001-caff-ce731c707d00 ; UserID: d6362594-ffec-4435-abe8-469941ff1501 ; ReceiptNumber: 2 ; ---- ; ReceiptID: 9387dc5d-2adf-4d77-84e1-db693db502bd ; UserID: d6362594-ffec-4435-abe8-469941ff1501 ; ReceiptNumber: 1 ; ---- ; The xero_receipts.xml file contains data that looks like this: ; <?xml version="1.0" encoding="utf-8" ?> ; <Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ; <Id>baf5d149-11de-4ba4-ba25-e8729d863812</Id> ; <Status>OK</Status> ; <ProviderName>ChilkatPrivate</ProviderName> ; <DateTimeUTC>2016-11-11T14:03:25.5756186Z</DateTimeUTC> ; <Receipts> ; <Receipt> ; <ReceiptID>c4f40e59-c390-0001-caff-ce731c707d00</ReceiptID> ; <ReceiptNumber>2</ReceiptNumber> ; <Status>DRAFT</Status> ; <User> ; <UserID>d6362594-ffec-4435-abe8-469941ff1501</UserID> ; <FirstName>Matthew</FirstName> ; <LastName>Smith</LastName> ; </User> ; <Contact> ; <ContactID>f817d079-80ba-4a4f-8b57-6171c0cdd14c</ContactID> ; <Name>Epicenter Cafe</Name> ; </Contact> ; <Date>2016-10-13T00:00:00</Date> ; <UpdatedDateUTC>2011-10-07T20:45:16.153</UpdatedDateUTC> ; <LineAmountTypes>Inclusive</LineAmountTypes> ; <SubTotal>0.00</SubTotal> ; <TotalTax>0.00</TotalTax> ; <Total>0.00</Total> ; <HasAttachments>false</HasAttachments> ; </Receipt> ; <Receipt> ; <ReceiptID>9387dc5d-2adf-4d77-84e1-db693db502bd</ReceiptID> ; <ReceiptNumber>1</ReceiptNumber> ; <Status>DRAFT</Status> ; <User> ; <UserID>d6362594-ffec-4435-abe8-469941ff1501</UserID> ; <FirstName>Matthew</FirstName> ; <LastName>Smith</LastName> ; </User> ; <Contact> ; <ContactID>6a31faab-588e-46a1-be9a-bd6d1dd468df</ContactID> ; <Name>Woolworths Market</Name> ; </Contact> ; <Date>2016-10-11T00:00:00</Date> ; <UpdatedDateUTC>2016-06-24T17:15:05.337</UpdatedDateUTC> ; <LineAmountTypes>Inclusive</LineAmountTypes> ; <SubTotal>35.20</SubTotal> ; <TotalTax>0.00</TotalTax> ; <Total>35.20</Total> ; <HasAttachments>false</HasAttachments> ; </Receipt> ; </Receipts> ; </Response> CkRest::ckDispose(rest) CkStringBuilder::ckDispose(sbXml) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.