Xbase++
Xbase++
ETrade v1 List Accounts
See more HTTP Misc Examples
List ETrade accounts using the ETrade v1 API.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJson
LOCAL cRespStr
LOCAL nStatusCode
LOCAL oXml
LOCAL i
LOCAL nCount_i
LOCAL cTagPath
LOCAL nAccountId
LOCAL cAccountIdKey
LOCAL cAccountMode
LOCAL cAccountDesc
LOCAL cAccountName
LOCAL cAccountType
LOCAL cInstitutionType
LOCAL cAccountStatus
LOCAL nClosedDate
nSuccess := 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
oHttp:OAuth1 := 1
oHttp:OAuthVerifier := ""
oHttp:OAuthConsumerKey := "ETRADE_CONSUMER_KEY"
oHttp:OAuthConsumerSecret := "ETRADE_CONSUMER_SECRET"
// Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
oJson := CreateObject("Chilkat.JsonObject")
nSuccess := oJson:LoadFile("qa_data/tokens/etrade.json")
IF (nSuccess != 1)
? "Failed to load OAuth1 token"
oHttp:destroy()
oJson:destroy()
RETURN
ENDIF
oHttp:OAuthToken := oJson:StringOf("oauth_token")
oHttp:OAuthTokenSecret := oJson:StringOf("oauth_token_secret")
// See the ETrade v1 API documentation HERE.
cRespStr := oHttp:QuickGetStr("https://apisb.etrade.com/v1/accounts/list")
IF (oHttp:LastMethodSuccess != 1)
? oHttp:LastErrorText
oHttp:destroy()
oJson:destroy()
RETURN
ENDIF
// A 200 status code indicates success.
nStatusCode := oHttp:LastStatus
? "statusCode = " + Str(nStatusCode)
// Use the following online tool to generate parsing code from sample XML:
// Generate Parsing Code from XML
// A sample XML response is shown below...
oXml := CreateObject("Chilkat.Xml")
oXml:LoadXml(cRespStr)
i := 0
nCount_i := oXml:NumChildrenHavingTag("Accounts|Account")
DO WHILE i < nCount_i
oXml:I := i
nAccountId := oXml:GetChildIntValue("Accounts|Account[i]|accountId")
cAccountIdKey := oXml:GetChildContent("Accounts|Account[i]|accountIdKey")
cAccountMode := oXml:GetChildContent("Accounts|Account[i]|accountMode")
cAccountDesc := oXml:GetChildContent("Accounts|Account[i]|accountDesc")
cAccountName := oXml:GetChildContent("Accounts|Account[i]|accountName")
cAccountType := oXml:GetChildContent("Accounts|Account[i]|accountType")
cInstitutionType := oXml:GetChildContent("Accounts|Account[i]|institutionType")
cAccountStatus := oXml:GetChildContent("Accounts|Account[i]|accountStatus")
nClosedDate := oXml:GetChildIntValue("Accounts|Account[i]|closedDate")
i := i + 1
ENDDO
// <?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>
oHttp:destroy()
oJson:destroy()
oXml:destroy()