Sample code for 30+ languages & platforms
AutoIt 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 AutoIt Downloads

AutoIt
Local $bSuccess = False

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

Local $sConsumerKey = "ETRADE_CONSUMER_KEY"
Local $sConsumerSecret = "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:
Local $sRequestTokenUrl = "https://apisb.etrade.com/oauth/request_token"

$oHttp = ObjCreate("Chilkat.Http")
$bSuccess = True

$oHttp.OAuth1 = True
$oHttp.OAuthConsumerKey = $sConsumerKey
$oHttp.OAuthConsumerSecret = $sConsumerSecret
$oHttp.OAuthCallback = "oob"

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpNoBody("GET",$sRequestTokenUrl,$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

;  If successful, the resp.BodyStr contains something like this:  
;  oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
ConsoleWrite($oResp.BodyStr & @CRLF)

$oHashTab = ObjCreate("Chilkat.Hashtable")
$oHashTab.AddQueryParams($oResp.BodyStr)

Local $sRequestToken = $oHashTab.LookupStr("oauth_token")
Local $sRequestTokenSecret = $oHashTab.LookupStr("oauth_token_secret")
$oHttp.OAuthTokenSecret = $sRequestTokenSecret

ConsoleWrite("oauth_token = " & $sRequestToken & @CRLF)
ConsoleWrite("oauth_token_secret = " & $sRequestTokenSecret & @CRLF)

;  Save this request token for the next step..
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.AppendString("oauth_token",$sRequestToken)
$oJson.AppendString("oauth_token_secret",$sRequestTokenSecret)

$oFac = ObjCreate("Chilkat.FileAccess")
$oFac.WriteEntireTextFile("qa_data/tokens/etrade_request_token.json",$oJson.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.
Local $sAuthorizeUrl = "https://us.etrade.com/e/t/etws/authorize"

$oSbUrlForBrowser = ObjCreate("Chilkat.StringBuilder")
$oSbUrlForBrowser.Append($sAuthorizeUrl)
$oSbUrlForBrowser.Append("?key=")
$oSbUrlForBrowser.Append($sConsumerKey)
$oSbUrlForBrowser.Append("&token=")
$oSbUrlForBrowser.Append($sRequestToken)
Local $sUrl = $oSbUrlForBrowser.GetAsString()

;  Launch the system's default browser navigated to the URL.
$oOauth2 = ObjCreate("Chilkat.OAuth2")
$bSuccess = $oOauth2.LaunchBrowser($sUrl)
If ($bSuccess = False) Then
    ConsoleWrite($oOauth2.LastErrorText & @CRLF)
    Exit
EndIf

;  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