Lianja
Lianja
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 Lianja Downloads
llSuccess = .F.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
lcConsumerKey = "ETRADE_CONSUMER_KEY"
lcConsumerSecret = "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:
lcRequestTokenUrl = "https://apisb.etrade.com/oauth/request_token"
loHttp = createobject("CkHttp")
llSuccess = .T.
loHttp.OAuth1 = .T.
loHttp.OAuthConsumerKey = lcConsumerKey
loHttp.OAuthConsumerSecret = lcConsumerSecret
loHttp.OAuthCallback = "oob"
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpNoBody("GET",lcRequestTokenUrl,loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loHttp
release loResp
return
endif
// If successful, the resp.BodyStr contains something like this:
// oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
? loResp.BodyStr
loHashTab = createobject("CkHashtable")
loHashTab.AddQueryParams(loResp.BodyStr)
lcRequestToken = loHashTab.LookupStr("oauth_token")
lcRequestTokenSecret = loHashTab.LookupStr("oauth_token_secret")
loHttp.OAuthTokenSecret = lcRequestTokenSecret
? "oauth_token = " + lcRequestToken
? "oauth_token_secret = " + lcRequestTokenSecret
// Save this request token for the next step..
loJson = createobject("CkJsonObject")
loJson.AppendString("oauth_token",lcRequestToken)
loJson.AppendString("oauth_token_secret",lcRequestTokenSecret)
loFac = createobject("CkFileAccess")
loFac.WriteEntireTextFile("qa_data/tokens/etrade_request_token.json",loJson.Emit(),"utf-8",.F.)
// ---------------------------------------------------------------------------
// 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.
lcAuthorizeUrl = "https://us.etrade.com/e/t/etws/authorize"
loSbUrlForBrowser = createobject("CkStringBuilder")
loSbUrlForBrowser.Append(lcAuthorizeUrl)
loSbUrlForBrowser.Append("?key=")
loSbUrlForBrowser.Append(lcConsumerKey)
loSbUrlForBrowser.Append("&token=")
loSbUrlForBrowser.Append(lcRequestToken)
lcUrl = loSbUrlForBrowser.GetAsString()
// Launch the system's default browser navigated to the URL.
loOauth2 = createobject("CkOAuth2")
llSuccess = loOauth2.LaunchBrowser(lcUrl)
if (llSuccess = .F.) then
? loOauth2.LastErrorText
release loHttp
release loResp
release loHashTab
release loJson
release loFac
release loSbUrlForBrowser
release loOauth2
return
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.
//
release loHttp
release loResp
release loHashTab
release loJson
release loFac
release loSbUrlForBrowser
release loOauth2