![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) ETrade OAuth1 Authorization (3-legged) Step 2Demonstrates the final step in 3-legged OAuth1 authorization for the ETrade REST API. Example uses the OAuth1 verifier code that was copy-and-pasted from the browser in the 1st step. The end result of this final OAuth1 step is an access token that can be used to make ETrade REST API calls. See https://apisb.etrade.com/docs/api/authorization/get_access_token.html Note: This example requires Chilkat v11.0.0 or greater.
integer li_rc integer li_Success string ls_ConsumerKey string ls_ConsumerSecret string ls_RequestTokenUrl string ls_AuthorizeUrl string ls_AccessTokenUrl oleobject loo_Http oleobject loo_JsonRequestToken string ls_RequestToken string ls_RequestTokenSecret oleobject loo_Resp oleobject loo_HashTab string ls_AccessToken string ls_AccessTokenSecret oleobject loo_Json oleobject loo_Fac 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" ls_RequestTokenUrl = "https://apisb.etrade.com/oauth/request_token" ls_AuthorizeUrl = "https://us.etrade.com/e/t/etws/authorize" ls_AccessTokenUrl = "https://apisb.etrade.com/oauth/access_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_JsonRequestToken = create oleobject li_rc = loo_JsonRequestToken.ConnectToNewObject("Chilkat.JsonObject") li_Success = loo_JsonRequestToken.LoadFile("qa_data/tokens/etrade_request_token.json") ls_RequestToken = loo_JsonRequestToken.StringOf("oauth_token") ls_RequestTokenSecret = loo_JsonRequestToken.StringOf("oauth_token_secret") // ------------------------------------------------------------------------------ // Exchange the OAuth Request Token for an OAuth Access Token. loo_Http.OAuthToken = ls_RequestToken loo_Http.OAuthTokenSecret = ls_RequestTokenSecret // This is the verifier that was interactively copy-and-pasted from the browser back to our app. loo_Http.OAuthVerifier = "NJ07S" loo_Resp = create oleobject li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse") li_Success = loo_Http.HttpNoBody("GET",ls_AccessTokenUrl,loo_Resp) if li_Success = 0 then Write-Debug loo_Http.LastErrorText destroy loo_Http destroy loo_JsonRequestToken destroy loo_Resp return end if // Make sure a successful response was received. if loo_Resp.StatusCode <> 200 then Write-Debug loo_Resp.StatusLine Write-Debug loo_Resp.Header Write-Debug loo_Resp.BodyStr destroy loo_Http destroy loo_JsonRequestToken destroy loo_Resp return end if // If successful, the resp.BodyStr contains something like this: // oauth_token=85123455-fF41296Bi3daM8eCo9Y5vZabcdxXpRv864plYPOjr&oauth_token_secret=afiYJOgabcdSfGae7BDvJVVTwys8fUGpra5guZxbmFBZo Write-Debug loo_Resp.BodyStr loo_HashTab = create oleobject li_rc = loo_HashTab.ConnectToNewObject("Chilkat.Hashtable") loo_HashTab.AddQueryParams(loo_Resp.BodyStr) ls_AccessToken = loo_HashTab.LookupStr("oauth_token") ls_AccessTokenSecret = loo_HashTab.LookupStr("oauth_token_secret") // The access token + secret is what should be saved and used for // subsequent REST API calls. Write-Debug "Access Token = " + ls_AccessToken Write-Debug "Access Token Secret = " + ls_AccessTokenSecret // Save this access token for future calls. // Just in case we need user_id and screen_name, save those also.. loo_Json = create oleobject li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") loo_Json.AppendString("oauth_token",ls_AccessToken) loo_Json.AppendString("oauth_token_secret",ls_AccessTokenSecret) loo_Fac = create oleobject li_rc = loo_Fac.ConnectToNewObject("Chilkat.FileAccess") loo_Fac.WriteEntireTextFile("qa_data/tokens/etrade.json",loo_Json.Emit(),"utf-8",0) Write-Debug "Success." destroy loo_Http destroy loo_JsonRequestToken destroy loo_Resp destroy loo_HashTab destroy loo_Json destroy loo_Fac |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.