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
(DataFlex) Xero Upload AttachmentDemonstrates how to upload an attachment to Xero. For more information, see https://developer.xero.com/documentation/api/attachments#POST
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Handle hoJsonToken Boolean iSuccess String sUrl Variant vBd Handle hoBd Variant vResp Handle hoResp Handle hoJsonResponse String sTemp1 Integer iTemp1 Boolean bTemp1 // 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 pvComObject of hoBd to vBd Get ComPBinaryBd Of hoHttp "POST" sUrl vBd "image/jpg" False False To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) 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." Send Destroy of hoResp Procedure_Return End Send Destroy of hoResp // 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-2024 Chilkat Software, Inc. All Rights Reserved.