PowerShell
PowerShell
GeoOp Exchange Refresh Token for New Access Token
See more GeoOp Examples
Demonstrates how to use the /oauth2/token endpoint to exchange it for a new access token once the current access token has expired.Note: This example requires Chilkat v9.5.0.65 or greater.
Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# This example also assumes that OAuth2 access and refresh tokens were previously fetched.
# and saved in a JSON file.
# First get our previously obtained refresh token.
# { .... "refresh_token":"e6dqdG....mzjpT04w==", .... }
$jsonToken = New-Object Chilkat.JsonObject
$success = $jsonToken.LoadFile("qa_data/tokens/geoop.json")
$rest = New-Object Chilkat.Rest
# Connect to GeoOp...
$bAutoReconnect = $true
$success = $rest.Connect("login.geoop.com",443,$true,$bAutoReconnect)
if ($success -ne $true) {
$($rest.LastErrorText)
exit
}
# Set the X-Version header.
$rest.AddHeader("X-Version","1.0")
# Provide the required form params to get the new access token
$("refresh_token = " + $jsonToken.StringOf("refresh_token"))
$rest.AddQueryParam("refresh_token",$jsonToken.StringOf("refresh_token"))
$rest.AddQueryParam("grant_type","refresh_token")
$rest.AddQueryParam("client_id","GEOOP-CLIENT-ID")
$rest.AddQueryParam("client_secret","GEOOP-CLIENT-SECRET")
$responseBody = $rest.FullRequestFormUrlEncoded("POST","/oauth2/token")
if ($rest.LastMethodSuccess -ne $true) {
$($rest.LastErrorText)
exit
}
# If the response status code did not indicate success, then see what happened..
if ($rest.ResponseStatusCode -ne 200) {
$("Request Header: ")
$($rest.LastRequestHeader)
$("----")
$("Response StatusCode = " + $rest.ResponseStatusCode)
$("Response StatusLine: " + $rest.ResponseStatusText)
$("Response Header:")
$($rest.ResponseHeader)
$($responseBody)
exit
}
$json = New-Object Chilkat.JsonObject
$json.EmitCompact = $false
$json.Load($responseBody)
# Show the full JSON response. It should contain the new access token...
$($json.Emit())