Sample code for 30+ languages & platforms
Java

RSAP Union API - Get OAuth2 Access Token

See more _Miscellaneous_ Examples

Demonstrates how to get an OAuth2 access token for the RSAP Union API. Note: This uses the client credentials flow, which does NOT require an interactive engagement using a browser.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.Cert;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.PrivateKey;
import com.chilkatsoft.chilkat2.StringBuilder;

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.

        Http http = new Http();

        // The following JSON is sent in the request body.

        // {
        //   "grant_type": "client_credentials",
        //   "client_id": 1234,
        //   "client_secret": "23456abcde"
        // }

        JsonObject json = new JsonObject();
        json.updateString("grant_type", "client_credentials");
        json.updateInt("client_id", 1234);
        json.updateString("client_secret", "23456abcde");

        http.setRequestHeader("Content-type", "application/json");

        // Add the client certificate TLS authentication.
        Cert cert = new Cert();
        try {
            cert.loadFromFile("qa_data/certs_and_keys/union_client_certificate.crt");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        PrivateKey privKey = new PrivateKey();
        try {
            privKey.loadAnyFormatFile("qa_data/certs_and_keys/union_client_certificate.nopass.key", "");

            // Associate the private key with the cert.
            // This will fail if the private key is not actually the correct one that corresponds to the public key stored within the cert.
            cert.setPrivateKey(privKey);

            // Tell HTTP to use the cert for client TLS certificate authentication.
            http.setSslClientCert(cert);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        HttpResponse resp = new HttpResponse();
        try {
            http.httpJson("POST", "https://api-test.rsap.ca/oauth/token", json, "application/json", resp);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        StringBuilder sbResponseBody = new StringBuilder();
        resp.getBodySb(sbResponseBody);
        JsonObject jResp = new JsonObject();
        jResp.loadSb(sbResponseBody);
        jResp.setEmitCompact(false);

        System.out.println("Response Body:");
        System.out.println(jResp.emit());

        int respStatusCode = resp.getStatusCode();
        System.out.println("Response Status Code = " + respStatusCode);
        if (respStatusCode >= 400) {
            System.out.println("Response Header:");
            System.out.println(resp.getHeader());
            System.out.println("Failed.");
            return;
        }

        // Sample JSON response:
        // (Sample code for parsing the JSON response is shown below)

        // {
        //   "token_type": "Bearer",
        //   "expires_in": 3600,
        //   "access_token": "eyJ0eXAi...LnE"
        // }

        // This token expires in 1 hour.  Your application could re-use the same token for up to an hour,
        // or it can simply get a new access token before each request (if you're not doing too many requests).
        jResp.writeFile("qa_data/tokens/rsapToken.json");
    }
}