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
(PureBasic) ETrade v1 List AccountsList ETrade accounts using the ETrade v1 API.
IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttp::setCkOAuth1(http, 1) CkHttp::setCkOAuthVerifier(http, "") CkHttp::setCkOAuthConsumerKey(http, "ETRADE_CONSUMER_KEY") CkHttp::setCkOAuthConsumerSecret(http, "ETRADE_CONSUMER_SECRET") ; Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(json,"qa_data/tokens/etrade.json") If success <> 1 Debug "Failed to load OAuth1 token" CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf CkHttp::setCkOAuthToken(http, CkJsonObject::ckStringOf(json,"oauth_token")) CkHttp::setCkOAuthTokenSecret(http, CkJsonObject::ckStringOf(json,"oauth_token_secret")) ; See the ETrade v1 API documentation HERE. respStr.s = CkHttp::ckQuickGetStr(http,"https://apisb.etrade.com/v1/accounts/list") If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf ; A 200 status code indicates success. statusCode.i = CkHttp::ckLastStatus(http) Debug "statusCode = " + Str(statusCode) ; Use the following online tool to generate parsing code from sample XML: ; Generate Parsing Code from XML ; A sample XML response is shown below... xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(xml,respStr) i.i count_i.i tagPath.s accountId.i accountIdKey.s accountMode.s accountDesc.s accountName.s accountType.s institutionType.s accountStatus.s closedDate.i i = 0 count_i = CkXml::ckNumChildrenHavingTag(xml,"Accounts|Account") While i < count_i CkXml::setCkI(xml, i) accountId = CkXml::ckGetChildIntValue(xml,"Accounts|Account[i]|accountId") accountIdKey = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|accountIdKey") accountMode = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|accountMode") accountDesc = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|accountDesc") accountName = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|accountName") accountType = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|accountType") institutionType = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|institutionType") accountStatus = CkXml::ckGetChildContent(xml,"Accounts|Account[i]|accountStatus") closedDate = CkXml::ckGetChildIntValue(xml,"Accounts|Account[i]|closedDate") i = i + 1 Wend ; <?xml version="1.0" encoding="UTF-8"?> ; <AccountListResponse> ; <Accounts> ; <Account> ; <accountId>84010429</accountId> ; <accountIdKey>JIdOIAcSpwR1Jva7RQBraQ</accountIdKey> ; <accountMode>MARGIN</accountMode> ; <accountDesc>INDIVIDUAL</accountDesc> ; <accountName>Individual Brokerage</accountName> ; <accountType>INDIVIDUAL</accountType> ; <institutionType>BROKERAGE</institutionType> ; <accountStatus>ACTIVE</accountStatus> ; <closedDate>0</closedDate> ; </Account> ; <Account> ; <accountId>84010430</accountId> ; <accountIdKey>JAAOIAcSpwR1Jva7RQBraQ</accountIdKey> ; <accountMode>MARGIN</accountMode> ; <accountDesc>INDIVIDUAL</accountDesc> ; <accountName>Individual Brokerage</accountName> ; <accountType>INDIVIDUAL</accountType> ; <institutionType>BROKERAGE</institutionType> ; <accountStatus>ACTIVE</accountStatus> ; <closedDate>0</closedDate> ; </Account> ; </Accounts> ; </AccountListResponse> CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.