Sample code for 30+ languages & platforms
Visual Basic 6.0

ETrade Renew Access Token

See more ETrade Examples

Renews an ETrade OAuth access token.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

' This requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New ChilkatHttp

http.OAuth1 = 1
http.OAuthVerifier = ""
http.OAuthConsumerKey = "ETRADE_CONSUMER_KEY"
http.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"

' Load the access token previously obtained via the OAuth1 Authorization
Dim jsonToken As New ChilkatJsonObject
success = jsonToken.LoadFile("qa_data/tokens/etrade.json")
If (success <> 1) Then
    Debug.Print "Failed to load OAuth1 token"
    Exit Sub
End If

http.OAuthToken = jsonToken.StringOf("oauth_token")
http.OAuthTokenSecret = jsonToken.StringOf("oauth_token_secret")

Dim resp As New ChilkatHttpResponse
success = http.HttpNoBody("GET","https://api.etrade.com/oauth/renew_access_token",resp)
If (success = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

' Make sure a successful response was received.
If (resp.StatusCode <> 200) Then
    Debug.Print resp.StatusLine
    Debug.Print resp.Header
    Debug.Print resp.BodyStr
    Exit Sub
End If

' If successful, the resp.BodyStr contains something like this:
' oauth_token=%3TiQRgQCRGPo7Xdk6G8QDSEzX0Jsy6sKNcULcDavAGgU%3D&oauth_token_secret=%7RrC9scEpzcwSEMy4vE7nodSzPLqfRINnTNY4voczyFM%3D
Debug.Print resp.BodyStr

Dim sbRespBody As New ChilkatStringBuilder
success = resp.GetBodySb(sbRespBody)
If (sbRespBody.ContentsEqual("Access Token has been renewed",0)) Then
    ' The documentation at https://apisb.etrade.com/docs/api/authorization/renew_access_token.html
    ' indicates that the response should be as described above.  However, the response received when
    ' trying to refresh a non-expired token was "Access Token has been renewed"
    Debug.Print "Keeping the same access token, but it's renewed..."
    Exit Sub
End If

Dim hashTab As New ChilkatHashtable
success = hashTab.AddQueryParams(resp.BodyStr)

Dim accessToken As String
accessToken = hashTab.LookupStr("oauth_token")
Dim accessTokenSecret As String
accessTokenSecret = hashTab.LookupStr("oauth_token_secret")

' The access token + secret is what should be saved and used for
' subsequent REST API calls.
Debug.Print "Access Token = " & accessToken
Debug.Print "Access Token Secret = " & accessTokenSecret

' Save this access token for future calls.
' Just in case we need user_id and screen_name, save those also..
Dim json As New ChilkatJsonObject
success = json.AppendString("oauth_token",accessToken)
success = json.AppendString("oauth_token_secret",accessTokenSecret)

Dim fac As New CkFileAccess
success = fac.WriteEntireTextFile("qa_data/tokens/etrade.json",json.Emit(),"utf-8",0)

Debug.Print "Success."