Sample code for 30+ languages & platforms
PowerShell

ETrade Renew Access Token

See more ETrade Examples

Renews an ETrade OAuth access token.

Chilkat PowerShell Downloads

PowerShell
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.")