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 Renew Access TokenRenews an ETrade OAuth access token. For more information, see https://apisb.etrade.com/docs/api/authorization/renew_access_token.html
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Handle hoJsonToken Boolean iSuccess Variant vResp Handle hoResp Variant vSbRespBody Handle hoSbRespBody 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. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Set ComOAuth1 Of hoHttp To True Set ComOAuthVerifier Of hoHttp To "" Set ComOAuthConsumerKey Of hoHttp To "ETRADE_CONSUMER_KEY" Set ComOAuthConsumerSecret Of hoHttp To "ETRADE_CONSUMER_SECRET" // Load the access token previously obtained via the OAuth1 Authorization Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken If (Not(IsComObjectCreated(hoJsonToken))) Begin Send CreateComObject of hoJsonToken End Get ComLoadFile Of hoJsonToken "qa_data/tokens/etrade.json" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load OAuth1 token" Procedure_Return End Get ComStringOf Of hoJsonToken "oauth_token" To sTemp1 Set ComOAuthToken Of hoHttp To sTemp1 Get ComStringOf Of hoJsonToken "oauth_token_secret" To sTemp1 Set ComOAuthTokenSecret Of hoHttp To sTemp1 Get ComQuickGetObj Of hoHttp "https://api.etrade.com/oauth/renew_access_token" 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=%3TiQRgQCRGPo7Xdk6G8QDSEzX0Jsy6sKNcULcDavAGgU%3D&oauth_token_secret=%7RrC9scEpzcwSEMy4vE7nodSzPLqfRINnTNY4voczyFM%3D Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Get Create (RefClass(cComChilkatStringBuilder)) To hoSbRespBody If (Not(IsComObjectCreated(hoSbRespBody))) Begin Send CreateComObject of hoSbRespBody End Get pvComObject of hoSbRespBody to vSbRespBody Get ComGetBodySb Of hoResp vSbRespBody To iSuccess Get ComContentsEqual Of hoSbRespBody "Access Token has been renewed" False To bTemp1 If (bTemp1) Begin // The documentation at https://apisb.etrade.com/docs/api/authorization/renew_access_token.html // indicates that the response should be as described above. However, the response received when // trying to refresh a non-expired token was "Access Token has been renewed" Showln "Keeping the same access token, but it's renewed..." Procedure_Return End 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.