Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... 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
integer li_rc string ls_ConsumerKey string ls_ConsumerSecret string ls_RequestTokenUrl string ls_AuthorizeUrl string ls_AccessTokenUrl oleobject loo_Http integer li_Success 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 // 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 // Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 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 // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 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 = loo_Http.QuickGetObj(ls_AccessTokenUrl) if loo_Http.LastMethodSuccess <> 1 then Write-Debug loo_Http.LastErrorText destroy loo_Http destroy loo_JsonRequestToken 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 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 // Use "Chilkat_9_5_0.Hashtable" for versions of Chilkat < 10.0.0 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") destroy loo_Resp // 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 // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 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 // Use "Chilkat_9_5_0.FileAccess" for versions of Chilkat < 10.0.0 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_HashTab destroy loo_Json destroy loo_Fac |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.