PowerBuilder
PowerBuilder
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 PowerBuilder Downloads
integer li_rc
integer li_Success
string ls_ConsumerKey
string ls_ConsumerSecret
string ls_RequestTokenUrl
oleobject loo_Http
oleobject loo_Resp
oleobject loo_HashTab
string ls_RequestToken
string ls_RequestTokenSecret
oleobject loo_Json
oleobject loo_Fac
string ls_AuthorizeUrl
oleobject loo_SbUrlForBrowser
string ls_Url
oleobject loo_Oauth2
li_Success = 0
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
ls_ConsumerKey = "ETRADE_CONSUMER_KEY"
ls_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:
ls_RequestTokenUrl = "https://apisb.etrade.com/oauth/request_token"
loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
destroy loo_Http
MessageBox("Error","Connecting to COM object failed")
return
end if
li_Success = 1
loo_Http.OAuth1 = 1
loo_Http.OAuthConsumerKey = ls_ConsumerKey
loo_Http.OAuthConsumerSecret = ls_ConsumerSecret
loo_Http.OAuthCallback = "oob"
loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")
li_Success = loo_Http.HttpNoBody("GET",ls_RequestTokenUrl,loo_Resp)
if li_Success = 0 then
Write-Debug loo_Http.LastErrorText
destroy loo_Http
destroy loo_Resp
return
end if
// If successful, the resp.BodyStr contains something like this:
// oauth_token=-Wa_KwAAAAAAxfEPAAABV8Qar4Q&oauth_token_secret=OfHY4tZBX2HK4f7yIw76WYdvnl99MVGB&oauth_callback_confirmed=true
Write-Debug loo_Resp.BodyStr
loo_HashTab = create oleobject
li_rc = loo_HashTab.ConnectToNewObject("Chilkat.Hashtable")
loo_HashTab.AddQueryParams(loo_Resp.BodyStr)
ls_RequestToken = loo_HashTab.LookupStr("oauth_token")
ls_RequestTokenSecret = loo_HashTab.LookupStr("oauth_token_secret")
loo_Http.OAuthTokenSecret = ls_RequestTokenSecret
Write-Debug "oauth_token = " + ls_RequestToken
Write-Debug "oauth_token_secret = " + ls_RequestTokenSecret
// Save this request token for the next step..
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.AppendString("oauth_token",ls_RequestToken)
loo_Json.AppendString("oauth_token_secret",ls_RequestTokenSecret)
loo_Fac = create oleobject
li_rc = loo_Fac.ConnectToNewObject("Chilkat.FileAccess")
loo_Fac.WriteEntireTextFile("qa_data/tokens/etrade_request_token.json",loo_Json.Emit(),"utf-8",0)
// ---------------------------------------------------------------------------
// 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.
ls_AuthorizeUrl = "https://us.etrade.com/e/t/etws/authorize"
loo_SbUrlForBrowser = create oleobject
li_rc = loo_SbUrlForBrowser.ConnectToNewObject("Chilkat.StringBuilder")
loo_SbUrlForBrowser.Append(ls_AuthorizeUrl)
loo_SbUrlForBrowser.Append("?key=")
loo_SbUrlForBrowser.Append(ls_ConsumerKey)
loo_SbUrlForBrowser.Append("&token=")
loo_SbUrlForBrowser.Append(ls_RequestToken)
ls_Url = loo_SbUrlForBrowser.GetAsString()
// Launch the system's default browser navigated to the URL.
loo_Oauth2 = create oleobject
li_rc = loo_Oauth2.ConnectToNewObject("Chilkat.OAuth2")
li_Success = loo_Oauth2.LaunchBrowser(ls_Url)
if li_Success = 0 then
Write-Debug loo_Oauth2.LastErrorText
destroy loo_Http
destroy loo_Resp
destroy loo_HashTab
destroy loo_Json
destroy loo_Fac
destroy loo_SbUrlForBrowser
destroy loo_Oauth2
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.
//
destroy loo_Http
destroy loo_Resp
destroy loo_HashTab
destroy loo_Json
destroy loo_Fac
destroy loo_SbUrlForBrowser
destroy loo_Oauth2