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
(Go) ETrade Renew Access TokenRenews an ETrade OAuth access token. For more information, see https://apisb.etrade.com/docs/api/authorization/renew_access_token.html
// This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := chilkat.NewHttp() http.SetOAuth1(true) http.SetOAuthVerifier("") http.SetOAuthConsumerKey("ETRADE_CONSUMER_KEY") http.SetOAuthConsumerSecret("ETRADE_CONSUMER_SECRET") // Load the access token previously obtained via the OAuth1 Authorization jsonToken := chilkat.NewJsonObject() success := jsonToken.LoadFile("qa_data/tokens/etrade.json") if success != true { fmt.Println("Failed to load OAuth1 token") http.DisposeHttp() jsonToken.DisposeJsonObject() return } http.SetOAuthToken(jsonToken.StringOf("oauth_token")) http.SetOAuthTokenSecret(jsonToken.StringOf("oauth_token_secret")) resp := http.QuickGetObj("https://api.etrade.com/oauth/renew_access_token") if http.LastMethodSuccess() != true { fmt.Println(http.LastErrorText()) http.DisposeHttp() jsonToken.DisposeJsonObject() return } // Make sure a successful response was received. if resp.StatusCode() != 200 { fmt.Println(resp.StatusLine()) fmt.Println(resp.Header()) fmt.Println(resp.BodyStr()) http.DisposeHttp() jsonToken.DisposeJsonObject() return } // If successful, the resp.BodyStr contains something like this: // oauth_token=%3TiQRgQCRGPo7Xdk6G8QDSEzX0Jsy6sKNcULcDavAGgU%3D&oauth_token_secret=%7RrC9scEpzcwSEMy4vE7nodSzPLqfRINnTNY4voczyFM%3D fmt.Println(resp.BodyStr()) sbRespBody := chilkat.NewStringBuilder() resp.GetBodySb(sbRespBody) if sbRespBody.ContentsEqual("Access Token has been renewed",false) { // 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" fmt.Println("Keeping the same access token, but it's renewed...") http.DisposeHttp() jsonToken.DisposeJsonObject() sbRespBody.DisposeStringBuilder() return } hashTab := chilkat.NewHashtable() hashTab.AddQueryParams(resp.BodyStr()) accessToken := hashTab.LookupStr("oauth_token") accessTokenSecret := hashTab.LookupStr("oauth_token_secret") resp.DisposeHttpResponse() // The access token + secret is what should be saved and used for // subsequent REST API calls. fmt.Println("Access Token = ", *accessToken) fmt.Println("Access Token Secret = ", *accessTokenSecret) // Save this access token for future calls. // Just in case we need user_id and screen_name, save those also.. json := chilkat.NewJsonObject() json.AppendString("oauth_token",*accessToken) json.AppendString("oauth_token_secret",*accessTokenSecret) fac := chilkat.NewFileAccess() fac.WriteEntireTextFile("qa_data/tokens/etrade.json",*json.Emit(),"utf-8",false) fmt.Println("Success.") http.DisposeHttp() jsonToken.DisposeJsonObject() sbRespBody.DisposeStringBuilder() hashTab.DisposeHashtable() json.DisposeJsonObject() fac.DisposeFileAccess() |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.