Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3/4 Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(Tcl) QuickBooks - Query a CustomerDemonstrates how to query QuickBooks customers. A sample JSON response body is available at Sample Quickbooks Customer Query JSON Response
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-2016 Chilkat Software, Inc. All Rights Reserved.