Ruby
Ruby
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 Ruby Downloads
require 'chilkat'
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::CkHttp.new()
success = true
http.put_OAuth1(true)
http.put_OAuthConsumerKey(consumerKey)
http.put_OAuthConsumerSecret(consumerSecret)
http.put_OAuthCallback("oob")
resp = Chilkat::CkHttpResponse.new()
success = http.HttpNoBody("GET",requestTokenUrl,resp)
if (success == false)
print http.lastErrorText() + "\n";
exit
end
# If successful, the resp.BodyStr contains something like this:
# oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
print resp.bodyStr() + "\n";
hashTab = Chilkat::CkHashtable.new()
hashTab.AddQueryParams(resp.bodyStr())
requestToken = hashTab.lookupStr("oauth_token")
requestTokenSecret = hashTab.lookupStr("oauth_token_secret")
http.put_OAuthTokenSecret(requestTokenSecret)
print "oauth_token = " + requestToken + "\n";
print "oauth_token_secret = " + requestTokenSecret + "\n";
# Save this request token for the next step..
json = Chilkat::CkJsonObject.new()
json.AppendString("oauth_token",requestToken)
json.AppendString("oauth_token_secret",requestTokenSecret)
fac = Chilkat::CkFileAccess.new()
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::CkStringBuilder.new()
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::CkOAuth2.new()
success = oauth2.LaunchBrowser(url)
if (success == false)
print oauth2.lastErrorText() + "\n";
exit
end
# 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.
#