Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

Tcl Web API Examples

Primary Categories

Facebook
GeoOp
Jira
PayPal
Peoplevox
QuickBooks

Shopify
Stripe
SugarCRM
Twitter
VoiceBase
Walmart
Xero
eBay
effectconnect

 

 

 

(Tcl) Xero Upload Attachment

Upload an attachment. (POST an attachment).

Note: Requires Chilkat v9.5.0.64 or greater.

Chilkat Tcl Extension Downloads

Chilkat Tcl Extension Downloads

load ./chilkat.dll

# 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.

set rest [new_CkRest]

# 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..

# --------------------------------------------------------------
# This example will upload an image attachment to a receipt.

set endPoint "Receipts"
set receiptID "c4f40e59-c390-0001-caff-ce731c707d00"
# This JPG image can be downloaded from https://www.chilkatsoft.com/syncedImages/penguins.jpg
set filename "penguins.jpg"

set sbPath [new_CkStringBuilder]

CkStringBuilder_Append $sbPath "/api.xro/2.0/{Endpoint}/{Guid}/Attachments/{Filename}"
set numReplaced [CkStringBuilder_Replace $sbPath "{Endpoint}" $endPoint]
set numReplaced [CkStringBuilder_Replace $sbPath "{Guid}" $receiptID]
set numReplaced [CkStringBuilder_Replace $sbPath "{Filename}" $filename]

CkRest_AddHeader $rest "Content-Type" "image/jpeg"

# Load the JPG image from a file.
set jpgData [new_CkBinData]

set success [CkBinData_LoadFile $jpgData "qa_data/jpg/penguins.jpg"]

# We could alternatively get it from a URL like this:
set jpgDataFromWeb [new_CkBinData]

set http [new_CkHttp]

set success [CkHttp_QuickGetBd $http "https://www.chilkatsoft.com/syncedImages/penguins.jpg" $jpgDataFromWeb]
if {[expr $success != 1]} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkRest $rest
    delete_CkStringBuilder $sbPath
    delete_CkBinData $jpgData
    delete_CkBinData $jpgDataFromWeb
    delete_CkHttp $http
    exit
}

# Upload with a POST
set sbResponseBody [new_CkStringBuilder]

set success [CkRest_FullRequestBd $rest "POST" [CkStringBuilder_getAsString $sbPath] $jpgData $sbResponseBody]
if {[expr $success != 1]} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkRest $rest
    delete_CkStringBuilder $sbPath
    delete_CkBinData $jpgData
    delete_CkBinData $jpgDataFromWeb
    delete_CkHttp $http
    delete_CkStringBuilder $sbResponseBody
    exit
}

# A 200 response is expected for actual success.
if {[expr [CkRest_get_ResponseStatusCode $rest] != 200]} then {
    puts [CkStringBuilder_getAsString $sbResponseBody]
    delete_CkRest $rest
    delete_CkStringBuilder $sbPath
    delete_CkBinData $jpgData
    delete_CkBinData $jpgDataFromWeb
    delete_CkHttp $http
    delete_CkStringBuilder $sbResponseBody
    exit
}

# Examine the XML response
puts [CkStringBuilder_getAsString $sbResponseBody]

# A successful response looks like this:

# 	<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
# 	  <Id>d82568cd-d222-49e6-b713-880b6edb0606</Id>
# 	  <Status>OK</Status>
# 	  <ProviderName>ChilkatPrivate</ProviderName>
# 	  <DateTimeUTC>2016-11-11T14:17:49.5922609Z</DateTimeUTC>
# 	  <Attachments>
# 	    <Attachment>
# 	      <AttachmentID>0edcddc8-325f-40c7-b950-8c71f14afc7c</AttachmentID>
# 	      <FileName>penguins.jpg</FileName>
# 	      <Url>http://api.xero.com/api.xro/2.0/Receipts/c4f40e59-c390-0001-caff-ce731c707d00/Attachments/penguins.jpg</Url>
# 	      <MimeType>image/jpg</MimeType>
# 	      <ContentLength>777835</ContentLength>
# 	    </Attachment>
# 	  </Attachments>
# 	</Response>

delete_CkRest $rest
delete_CkStringBuilder $sbPath
delete_CkBinData $jpgData
delete_CkBinData $jpgDataFromWeb
delete_CkHttp $http
delete_CkStringBuilder $sbResponseBody

 

© 2000-2019 Chilkat Software, Inc. All Rights Reserved.