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
(DataFlex) 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
Use ChilkatAx-win32.pkg Procedure Test String sConsumerKey String sConsumerSecret String sRequestTokenUrl String sAuthorizeUrl String sAccessTokenUrl Handle hoHttp Boolean iSuccess RequestToken Handle hoJsonRequestToken String sRequestToken String sRequestTokenSecret Variant vResp Handle hoResp Handle hoHashTab String sAccessToken String sAccessTokenSecret Handle hoJson Handle hoFac String sTemp1 Integer iTemp1 Boolean bTemp1 // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Move "ETRADE_CONSUMER_KEY" To sConsumerKey Move "ETRADE_CONSUMER_SECRET" To sConsumerSecret Move "https://apisb.etrade.com/oauth/request_token" To sRequestTokenUrl Move "https://us.etrade.com/e/t/etws/authorize" To sAuthorizeUrl Move "https://apisb.etrade.com/oauth/access_token" To sAccessTokenUrl Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Move True To iSuccess Set ComOAuth1 Of hoHttp To True Set ComOAuthConsumerKey Of hoHttp To sConsumerKey Set ComOAuthConsumerSecret Of hoHttp To sConsumerSecret Set ComOAuthCallback Of hoHttp To "oob" Get Create (RefClass(cComChilkatJsonObject)) To hoJsonRequestToken If (Not(IsComObjectCreated(hoJsonRequestToken))) Begin Send CreateComObject of hoJsonRequestToken End Get ComLoadFile Of hoJsonRequestToken "qa_data/tokens/etrade_request_token.json" To iSuccess Get ComStringOf Of hoJsonRequestToken "oauth_token" To sRequestToken Get ComStringOf Of hoJsonRequestToken "oauth_token_secret" To sRequestTokenSecret // ------------------------------------------------------------------------------ // Exchange the OAuth Request Token for an OAuth Access Token. Set ComOAuthToken Of hoHttp To sRequestToken Set ComOAuthTokenSecret Of hoHttp To sRequestTokenSecret // This is the verifier that was interactively copy-and-pasted from the browser back to our app. Set ComOAuthVerifier Of hoHttp To "NJ07S" Get ComQuickGetObj Of hoHttp sAccessTokenUrl To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End // Make sure a successful response was received. Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 <> 200) Begin Get ComStatusLine Of hoResp To sTemp1 Showln sTemp1 Get ComHeader Of hoResp To sTemp1 Showln sTemp1 Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Procedure_Return End // If successful, the resp.BodyStr contains something like this: // oauth_token=85123455-fF41296Bi3daM8eCo9Y5vZabcdxXpRv864plYPOjr&oauth_token_secret=afiYJOgabcdSfGae7BDvJVVTwys8fUGpra5guZxbmFBZo Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Get Create (RefClass(cComChilkatHashtable)) To hoHashTab If (Not(IsComObjectCreated(hoHashTab))) Begin Send CreateComObject of hoHashTab End Get ComBodyStr Of hoResp To sTemp1 Get ComAddQueryParams Of hoHashTab sTemp1 To iSuccess Get ComLookupStr Of hoHashTab "oauth_token" To sAccessToken Get ComLookupStr Of hoHashTab "oauth_token_secret" To sAccessTokenSecret Send Destroy of hoResp // The access token + secret is what should be saved and used for // subsequent REST API calls. Showln "Access Token = " sAccessToken Showln "Access Token Secret = " sAccessTokenSecret // Save this access token for future calls. // Just in case we need user_id and screen_name, save those also.. Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get ComAppendString Of hoJson "oauth_token" sAccessToken To iSuccess Get ComAppendString Of hoJson "oauth_token_secret" sAccessTokenSecret To iSuccess Get Create (RefClass(cComCkFileAccess)) To hoFac If (Not(IsComObjectCreated(hoFac))) Begin Send CreateComObject of hoFac End Get ComEmit Of hoJson To sTemp1 Get ComWriteEntireTextFile Of hoFac "qa_data/tokens/etrade.json" sTemp1 "utf-8" False To iSuccess Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.