Go
Go
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 Go Downloads
success := false
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
consumerKey := "ETRADE_CONSUMER_KEY"
consumerSecret := "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:
requestTokenUrl := "https://apisb.etrade.com/oauth/request_token"
http := chilkat.NewHttp()
success = true
http.SetOAuth1(true)
http.SetOAuthConsumerKey(consumerKey)
http.SetOAuthConsumerSecret(consumerSecret)
http.SetOAuthCallback("oob")
resp := chilkat.NewHttpResponse()
success = http.HttpNoBody("GET",requestTokenUrl,resp)
if success == false {
fmt.Println(http.LastErrorText())
http.DisposeHttp()
resp.DisposeHttpResponse()
return
}
// If successful, the resp.BodyStr contains something like this:
// oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
fmt.Println(resp.BodyStr())
hashTab := chilkat.NewHashtable()
hashTab.AddQueryParams(resp.BodyStr())
requestToken := hashTab.LookupStr("oauth_token")
requestTokenSecret := hashTab.LookupStr("oauth_token_secret")
http.SetOAuthTokenSecret(*requestTokenSecret)
fmt.Println("oauth_token = ", *requestToken)
fmt.Println("oauth_token_secret = ", *requestTokenSecret)
// Save this request token for the next step..
json := chilkat.NewJsonObject()
json.AppendString("oauth_token",*requestToken)
json.AppendString("oauth_token_secret",*requestTokenSecret)
fac := chilkat.NewFileAccess()
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.
authorizeUrl := "https://us.etrade.com/e/t/etws/authorize"
sbUrlForBrowser := chilkat.NewStringBuilder()
sbUrlForBrowser.Append(authorizeUrl)
sbUrlForBrowser.Append("?key=")
sbUrlForBrowser.Append(consumerKey)
sbUrlForBrowser.Append("&token=")
sbUrlForBrowser.Append(*requestToken)
url := sbUrlForBrowser.GetAsString()
// Launch the system's default browser navigated to the URL.
oauth2 := chilkat.NewOAuth2()
success = oauth2.LaunchBrowser(*url)
if success == false {
fmt.Println(oauth2.LastErrorText())
http.DisposeHttp()
resp.DisposeHttpResponse()
hashTab.DisposeHashtable()
json.DisposeJsonObject()
fac.DisposeFileAccess()
sbUrlForBrowser.DisposeStringBuilder()
oauth2.DisposeOAuth2()
return
}
// 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.
//
http.DisposeHttp()
resp.DisposeHttpResponse()
hashTab.DisposeHashtable()
json.DisposeJsonObject()
fac.DisposeFileAccess()
sbUrlForBrowser.DisposeStringBuilder()
oauth2.DisposeOAuth2()