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

CardConnect
Facebook
GeoOp
Jira
PayPal
Peoplevox
QuickBooks

Shopify
Stripe
SugarCRM
Twitter
VoiceBase
Walmart
Xero
eBay
effectconnect

 

 

 

(Tcl) QuickBooks - Query a Customer

Demonstrates how to query QuickBooks customers.

A sample JSON response body is available at Sample Quickbooks Customer Query JSON Response

Chilkat Tcl Extension Downloads

Chilkat Tcl Extension Downloads

load ./chilkat.dll

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# This example also assumes an OAuth1 access token was previously fetched.
# and saved in a JSON file.  See the Chilkat online examples at example-code.com
# for Quickbooks OAuth1 examples (in the Quickbooks and OAuth1 categories)
# 

# First get our previously obtained access token.
set jsonToken [new_CkJsonObject]

set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/quickbooks.json"]

set oauth1 [new_CkOAuth1]

CkOAuth1_put_ConsumerKey $oauth1 "QUICKBOOKS_CONSUMER_KEY"
CkOAuth1_put_ConsumerSecret $oauth1 "QUICKBOOKS_CONSUMER_SECRET"
CkOAuth1_put_Token $oauth1 [CkJsonObject_stringOf $jsonToken "oauth_token"]
CkOAuth1_put_TokenSecret $oauth1 [CkJsonObject_stringOf $jsonToken "oauth_token_secret"]

set rest [new_CkRest]

# Connect using TLS.
# A single REST object, once connected, can be used for many Quickbooks REST API calls.
# The auto-reconnect indicates that if the already-established HTTPS connection is closed,
# then it will be automatically re-established as needed.
set bAutoReconnect 1
set success [CkRest_Connect $rest "sandbox-quickbooks.api.intuit.com" 443 1 $bAutoReconnect]
if {[expr $success != 1]} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkJsonObject $jsonToken
    delete_CkOAuth1 $oauth1
    delete_CkRest $rest
    exit
}

CkRest_SetAuthOAuth1 $rest $oauth1 0

# The company ID is the realmId
set sbPath [new_CkStringBuilder]

CkStringBuilder_Append $sbPath "/v3/company/<companyID>/query"
set numReplacements [CkStringBuilder_Replace $sbPath "<companyID>" [CkJsonObject_stringOf $jsonToken "realmId"]]

CkRest_AddHeader $rest "Accept" "application/json"
CkRest_put_AllowHeaderFolding $rest 0

set query "select * from Customer"
CkRest_AddQueryParam $rest "query" $query

set responseBody [CkRest_fullRequestNoBody $rest "GET" [CkStringBuilder_getAsString $sbPath]]
if {[expr [CkRest_get_LastMethodSuccess $rest] != 1]} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkJsonObject $jsonToken
    delete_CkOAuth1 $oauth1
    delete_CkRest $rest
    delete_CkStringBuilder $sbPath
    exit
}

# We should expect a 200 response if successful.
if {[expr [CkRest_get_ResponseStatusCode $rest] != 200]} then {
    puts "Request Header: "
    puts [CkRest_lastRequestHeader $rest]
    puts "----"
    puts "Response StatusCode = [CkRest_get_ResponseStatusCode $rest]"
    puts "Response StatusLine: [CkRest_responseStatusText $rest]"
    puts "Response Header:"
    puts [CkRest_responseHeader $rest]
    puts "$responseBody"
    delete_CkJsonObject $jsonToken
    delete_CkOAuth1 $oauth1
    delete_CkRest $rest
    delete_CkStringBuilder $sbPath
    exit
}

# Load the JSON response into a JSON object for parsing.
# A sample JSON response is shown below.
set json [new_CkJsonObject]

CkJsonObject_put_EmitCompact $json 0
CkJsonObject_Load $json $responseBody

# Iterate over each customer returned.
set numRecords [CkJsonObject_SizeOfArray $json "QueryResponse.Customer"]
set i 0
while {[expr $i < $numRecords]} {

    CkJsonObject_put_I $json $i
    puts "Name: [CkJsonObject_stringOf $json QueryResponse.Customer[i].FullyQualifiedName]"
    puts "Id: [CkJsonObject_stringOf $json QueryResponse.Customer[i].Id]"
    puts "City: [CkJsonObject_stringOf $json QueryResponse.Customer[i].BillAddr.City]"
    puts "----"
    set i [expr $i + 1]
}

puts "Success."

delete_CkJsonObject $jsonToken
delete_CkOAuth1 $oauth1
delete_CkRest $rest
delete_CkStringBuilder $sbPath
delete_CkJsonObject $json

 

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