![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Xero Upload AttachmentDemonstrates how to upload an attachment to Xero. Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://developer.xero.com/documentation/api/attachments#POST
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoHttp Handle hoJsonToken String sUrl Variant vBd Handle hoBd Variant vResp Handle hoResp Handle hoJsonResponse String sTemp1 Integer iTemp1 Move False To iSuccess // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End // Important: Make sure your OAuth2 access token was obtained with the scope "accounting.attachments" // included in the list of scopes. Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken If (Not(IsComObjectCreated(hoJsonToken))) Begin Send CreateComObject of hoJsonToken End Get ComLoadFile Of hoJsonToken "qa_data/tokens/xero-access-token.json" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoJsonToken To sTemp1 Showln sTemp1 Procedure_Return End Get ComStringOf Of hoJsonToken "access_token" To sTemp1 Set ComAuthToken Of hoHttp To sTemp1 // Replace the value here with an actual tenant ID obtained from this example: // Get Xero Tenant IDs Send ComSetRequestHeader To hoHttp "Xero-tenant-id" "83299b9e-5747-4a14-a18a-a6c94f824eb7" Set ComAccept Of hoHttp To "application/json" Move "https://api.xero.com/api.xro/2.0/{$Endpoint}/{$Guid}/Attachments/{$Filename}" To sUrl // Endpoint can be Invoices, Receipts, CreditNotes, PurchaseOrders, etc. Get ComSetUrlVar Of hoHttp "Endpoint" "Invoices" To iSuccess // Guid is the ID of the item, such as the InvoiceID. Get ComSetUrlVar Of hoHttp "Guid" "0032f627-3156-4d30-9b1c-4d3b994dc921" To iSuccess // Filename is the filename of the attachment you are uploading. Get ComSetUrlVar Of hoHttp "Filename" "penguins.jpg" To iSuccess // Load the file to be uploaded (from the local filesystem). Get Create (RefClass(cComChilkatBinData)) To hoBd If (Not(IsComObjectCreated(hoBd))) Begin Send CreateComObject of hoBd End Get ComLoadFile Of hoBd "qa_data/jpg/penguins.jpg" To iSuccess If (iSuccess = False) Begin Showln "Failed to load attachment file." Procedure_Return End // Indicate the content-type according to the file content type. // Common content-types are: image/jpg, image/png, application/pdf, application/zip, application/msword // If you don't know, use application/octet-stream Get Create (RefClass(cComChilkatHttpResponse)) To hoResp If (Not(IsComObjectCreated(hoResp))) Begin Send CreateComObject of hoResp End Get pvComObject of hoBd to vBd Get pvComObject of hoResp to vResp Get ComHttpBd Of hoHttp "POST" sUrl vBd "image/jpg" vResp To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComStatusCode Of hoResp To iTemp1 Showln "Response Status Code: " iTemp1 Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResponse If (Not(IsComObjectCreated(hoJsonResponse))) Begin Send CreateComObject of hoJsonResponse End Get ComBodyStr Of hoResp To sTemp1 Get ComLoad Of hoJsonResponse sTemp1 To iSuccess Set ComEmitCompact Of hoJsonResponse To False Get ComEmit Of hoJsonResponse To sTemp1 Showln sTemp1 Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 <> 200) Begin Showln "Failed." Procedure_Return End // A sample response: // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // { // "Id": "35333c64-4449-457b-bf6a-1b64d538e3c7", // "Status": "OK", // "ProviderName": "Chilkat2222", // "DateTimeUTC": "\/Date(1587212597758)\/", // "Attachments": [ // { // "AttachmentID": "daf106e2-8634-4349-bfcc-86c1df0793b2", // "FileName": "penguins.jpg", // "Url": "https://api.xero.com/api.xro/2.0/Invoices/0032f627-3156-4d30-9b1c-4d3b994dc921/Attachments/penguins.jpg", // "MimeType": "image/jpg", // "ContentLength": 777835 // } // ] // } End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.