PowerShell
PowerShell
ETrade Renew Access Token
See more ETrade Examples
Renews an ETrade OAuth access token.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = New-Object Chilkat.Http
$http.OAuth1 = $true
$http.OAuthVerifier = ""
$http.OAuthConsumerKey = "ETRADE_CONSUMER_KEY"
$http.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"
# Load the access token previously obtained via the OAuth1 Authorization
$jsonToken = New-Object Chilkat.JsonObject
$success = $jsonToken.LoadFile("qa_data/tokens/etrade.json")
if ($success -ne $true) {
$("Failed to load OAuth1 token")
exit
}
$http.OAuthToken = $jsonToken.StringOf("oauth_token")
$http.OAuthTokenSecret = $jsonToken.StringOf("oauth_token_secret")
$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpNoBody("GET","https://api.etrade.com/oauth/renew_access_token",$resp)
if ($success -eq $false) {
$($http.LastErrorText)
exit
}
# Make sure a successful response was received.
if ($resp.StatusCode -ne 200) {
$($resp.StatusLine)
$($resp.Header)
$($resp.BodyStr)
exit
}
# If successful, the resp.BodyStr contains something like this:
# oauth_token=%3TiQRgQCRGPo7Xdk6G8QDSEzX0Jsy6sKNcULcDavAGgU%3D&oauth_token_secret=%7RrC9scEpzcwSEMy4vE7nodSzPLqfRINnTNY4voczyFM%3D
$($resp.BodyStr)
$sbRespBody = New-Object Chilkat.StringBuilder
$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"
$("Keeping the same access token, but it's renewed...")
exit
}
$hashTab = New-Object Chilkat.Hashtable
$hashTab.AddQueryParams($resp.BodyStr)
$accessToken = $hashTab.LookupStr("oauth_token")
$accessTokenSecret = $hashTab.LookupStr("oauth_token_secret")
# The access token + secret is what should be saved and used for
# subsequent REST API calls.
$("Access Token = " + $accessToken)
$("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 = New-Object Chilkat.JsonObject
$json.AppendString("oauth_token",$accessToken)
$json.AppendString("oauth_token_secret",$accessTokenSecret)
$fac = New-Object Chilkat.FileAccess
$fac.WriteEntireTextFile("qa_data/tokens/etrade.json",$json.Emit(),"utf-8",$false)
$("Success.")