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 List AccountsReturns a list of E*TRADE accounts for the current user. For more information, see https://apisb.etrade.com/docs/api/account/api-account-v1.html
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() ; This 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 Authorization jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/etrade.json") If success <> 1 Debug "Failed to load OAuth1 token" CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf CkHttp::setCkOAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"oauth_token")) CkHttp::setCkOAuthTokenSecret(http, CkJsonObject::ckStringOf(jsonToken,"oauth_token_secret")) sandboxUrl.s = "https://apisb.etrade.com/v1/accounts/list" liveUrl.s = "https://api.etrade.com/v1/accounts/list" resp.i = CkHttp::ckQuickGetObj(http,sandboxUrl) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf ; Make sure a successful response was received. If CkHttpResponse::ckStatusCode(resp) >= 300 Debug CkHttpResponse::ckStatusLine(resp) Debug CkHttpResponse::ckHeader(resp) Debug CkHttpResponse::ckBodyStr(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf If CkHttpResponse::ckStatusCode(resp) = 204 Debug "No records available." CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf ; Sample XML response: ; Use this online tool to generate parsing code from sample XML: ; Generate Parsing Code from XML ; <?xml version="1.0" encoding="UTF-8" standalone="yes"?> ; <AccountListResponse> ; <Accounts> ; <Account> ; <accountId>82314598</accountId> ; <accountIdKey>dBZOKt9xDrtRSAOl4MSiiA</accountIdKey> ; <accountMode>IRA</accountMode> ; <accountDesc>Brokerage</accountDesc> ; <accountName>NickName-1</accountName> ; <accountType>MARGIN</accountType> ; <institutionType>BROKERAGE</institutionType> ; <accountStatus>ACTIVE</accountStatus> ; <closedDate>0</closedDate> ; </Account> ; <Account> ; <accountId>58315636</accountId> ; <accountIdKey>vQMsebA1H5WltUfDkJP48g</accountIdKey> ; <accountMode>BROKERAGE</accountMode> ; <accountDesc>Complete Savings</accountDesc> ; <accountName>NickName-2</accountName> ; <accountType>INDIVIDUAL</accountType> ; <institutionType>BROKERAGE</institutionType> ; <accountStatus>ACTIVE</accountStatus> ; <closedDate>0</closedDate> ; </Account> ; <Account> ; <accountId>70700418</accountId> ; <accountIdKey>6_Dpy0rmuQ9cu9IbTfvF2A</accountIdKey> ; <accountMode>CASH</accountMode> ; <accountDesc>INDIVIDUAL</accountDesc> ; <accountName>NickName-3</accountName> ; <accountType>INDIVIDUAL</accountType> ; <institutionType>BROKERAGE</institutionType> ; <accountStatus>ACTIVE</accountStatus> ; <closedDate>0</closedDate> ; </Account> ; <Account> ; <accountId>83515143</accountId> ; <accountIdKey>xj1Dc18FTqWPqkEEVUr5rw</accountIdKey> ; <accountMode>CASH</accountMode> ; <accountDesc>INDIVIDUAL</accountDesc> ; <accountName/> ; <accountType>CASH</accountType> ; <institutionType>BROKERAGE</institutionType> ; <accountStatus>CLOSED</accountStatus> ; <closedDate>1521027780</closedDate> ; ; </Account> ; </Accounts> ; </AccountListResponse> xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(xml,CkHttpResponse::ckBodyStr(resp)) Debug CkXml::ckGetXml(xml) accountId.i accountIdKey.s accountMode.s accountDesc.s accountName.s accountType.s institutionType.s accountStatus.s closedDate.i i.i = 0 count_i.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 Debug "Success." CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.