Sample code for 30+ languages & platforms
Java

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Rest;

public class ChilkatExample {

    public static void main(String[] args) {
        // 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==", .... }
        JsonObject jsonToken = new JsonObject();
        jsonToken.loadFile("qa_data/tokens/geoop.json");

        Rest rest = new Rest();

        // Connect to GeoOp...
        boolean bAutoReconnect = true;
        try {
            rest.connect("login.geoop.com", 443, true, bAutoReconnect);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Set the X-Version header.
        rest.addHeader("X-Version", "1.0");

        // Provide the required form params to get the new access token
        System.out.println("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");

        String responseBody;
        try {
            responseBody = rest.fullRequestFormUrlEncoded("POST", "/oauth2/token");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // If the response status code did not indicate success, then see what happened..
        if (rest.getResponseStatusCode() != 200) {
            System.out.println("Request Header: ");
            System.out.println(rest.getLastRequestHeader());
            System.out.println("----");
            System.out.println("Response StatusCode = " + rest.getResponseStatusCode());
            System.out.println("Response StatusLine: " + rest.getResponseStatusText());
            System.out.println("Response Header:");
            System.out.println(rest.getResponseHeader());
            System.out.println(responseBody);
            return;
        }

        JsonObject json = new JsonObject();
        json.setEmitCompact(false);
        json.load(responseBody);

        // Show the full JSON response.  It should contain the new access token...
        System.out.println(json.emit());
    }
}