Sample code for 30+ languages & platforms
B4X Requires Chilkat v11.0.0+

ETrade OAuth1 Authorization (3-legged) Step 1

See more ETrade Examples

Demonstrates the first step in 3-legged OAuth1 authorization for the ETrade REST API. This example sends an HTTP request to the "request token URL" to get a request token that begins the OAuth1 process. (See https://apisb.etrade.com/docs/api/authorization/request_token.html )

This example uses the sandbox request token URL. The live request token URL would be "https://api.etrade.com/oauth/request_token".

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

Dim consumerKey As String = "ETRADE_CONSUMER_KEY"
Dim consumerSecret As String = "ETRADE_CONSUMER_SECRET"

'  Note: This example uses the sandbox request token URL.
'  The live Get Request Token Request URL is:
'  https://api.etrade.com/oauth/request_token
'  This example will use the Sandbox Token Request URL:
Dim requestTokenUrl As String = "https://apisb.etrade.com/oauth/request_token"

Dim http As ChilkatHttp
http.Initialize("http")
success = True

http.OAuth1 = True
http.OAuthConsumerKey = consumerKey
http.OAuthConsumerSecret = consumerSecret
http.OAuthCallback = "oob"

Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpNoBody("GET", requestTokenUrl, resp)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


'  If successful, the resp.BodyStr contains something like this:  
'  oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
Log(resp.BodyStr)

Dim hashTab As ChilkatHashtable
hashTab.Initialize
hashTab.AddQueryParams(resp.BodyStr)

Dim requestToken As String = hashTab.LookupStr("oauth_token")
Dim requestTokenSecret As String = hashTab.LookupStr("oauth_token_secret")
http.OAuthTokenSecret = requestTokenSecret

Log("oauth_token = " & requestToken)
Log("oauth_token_secret = " & requestTokenSecret)

'  Save this request token for the next step..
Dim json As ChilkatJsonObject
json.Initialize
json.AppendString("oauth_token", requestToken)
json.AppendString("oauth_token_secret", requestTokenSecret)

Dim fac As ChilkatFileAccess
fac.Initialize
fac.WriteEntireTextFile("qa_data/tokens/etrade_request_token.json", json.Emit, "utf-8", False)

'  ---------------------------------------------------------------------------

'  The next step is to form a URL to send to the authorizeUrl
'  This is an HTTP GET that we load into a popup browser.
Dim authorizeUrl As String = "https://us.etrade.com/e/t/etws/authorize"

Dim sbUrlForBrowser As ChilkatStringBuilder
sbUrlForBrowser.Initialize
sbUrlForBrowser.Append(authorizeUrl)
sbUrlForBrowser.Append("?key=")
sbUrlForBrowser.Append(consumerKey)
sbUrlForBrowser.Append("&token=")
sbUrlForBrowser.Append(requestToken)
Dim url As String = sbUrlForBrowser.GetAsString

'  Launch the system's default browser navigated to the URL.
Dim oauth2 As ChilkatOAuth2
oauth2.Initialize("oauth2")
success = oauth2.LaunchBrowser(url)
If success = False Then
    Log(oauth2.LastErrorText)
    Return
End If


'  The ETrade account owner will login and grant access to the application.
'  A short verifier code will be displayed (as shown below), and this must be copy-and-pasted
'  into the next step to Complete the 3-legged OAuth1 Authorization 

'  Note: The browser will NOT automatically direct you to the next page.
'  You should copy the verifier code, close the browser, and then paste the verifier
'  code into your application.

'  image