AutoIt
AutoIt
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 AutoIt Downloads
Local $bSuccess = 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==", .... }
$oJsonToken = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonToken.LoadFile("qa_data/tokens/geoop.json")
$oRest = ObjCreate("Chilkat.Rest")
; Connect to GeoOp...
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("login.geoop.com",443,True,$bAutoReconnect)
If ($bSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; Set the X-Version header.
$oRest.AddHeader("X-Version","1.0")
; Provide the required form params to get the new access token
ConsoleWrite("refresh_token = " & $oJsonToken.StringOf("refresh_token") & @CRLF)
$oRest.AddQueryParam("refresh_token",$oJsonToken.StringOf("refresh_token"))
$oRest.AddQueryParam("grant_type","refresh_token")
$oRest.AddQueryParam("client_id","GEOOP-CLIENT-ID")
$oRest.AddQueryParam("client_secret","GEOOP-CLIENT-SECRET")
Local $sResponseBody = $oRest.FullRequestFormUrlEncoded("POST","/oauth2/token")
If ($oRest.LastMethodSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; If the response status code did not indicate success, then see what happened..
If ($oRest.ResponseStatusCode <> 200) Then
ConsoleWrite("Request Header: " & @CRLF)
ConsoleWrite($oRest.LastRequestHeader & @CRLF)
ConsoleWrite("----" & @CRLF)
ConsoleWrite("Response StatusCode = " & $oRest.ResponseStatusCode & @CRLF)
ConsoleWrite("Response StatusLine: " & $oRest.ResponseStatusText & @CRLF)
ConsoleWrite("Response Header:" & @CRLF)
ConsoleWrite($oRest.ResponseHeader & @CRLF)
ConsoleWrite($sResponseBody & @CRLF)
Exit
EndIf
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.EmitCompact = False
$oJson.Load($sResponseBody)
; Show the full JSON response. It should contain the new access token...
ConsoleWrite($oJson.Emit() & @CRLF)