Partner Developer Portal

Java Code Snippets

1. Authentication API Java

The code is running on Java 1.8, please include the below libraries in the project file first.

commons-codec-1.10.jar
commons-io-2.5.jar
commons-logging-4.0.6.jar
httpclient-4.5.2.jar
httpcore-4.4.11.jar
gson-2.6.2.ja

1.1. Get Your credentials from developer portal

String consumer_key = "Your Consumer Key";
String consumer_secret = "Your Consumer Secret "
String callback_url = "Your callback URL"
String environment_url = "enterprise-api-stg.autodesk.com"; //STG Environmen

1.2. Create Signature

String timestamp = new Long(new Date().getTime()).toString().substring(0,10);
String credentialCode = callback_url + consumer_key + timestamp;
SecretKeySpec signingKey = new SecretKeySpec(consumer_secret.getBytes(),"HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(credentialCode.getBytes());
String signature = new String(Base64.encodeBase64(rawHmac));

1.3. Create Authorization

String concatString = consumer_key + ":" + consumer_secret;
String authHeader = Base64.getEncoder().encodeToString(concatString.getBytes());

1.4. Call Authentication API to get access token

String authenticationUrl = "https://enterprise-api-stg.autodesk.com/v2/oauth/generateaccesstoken?grant_type=client_credentials";

HttpRequestBase request = new HttpPost(authenticationUrl);
request.addHeader("authorization", "Basic " + authHeader);
request.addHeader("signature", signature);
request.addHeader("timestamp", timestamp);

HttpClient client = HttpClientBuilder.create().build();
HttpResponse response = client.execute(request);
String jsonResponse = IOUtils.toString(response.getEntity().getContent(), "UTF-8");

try {
JsonParser parser = new JsonParser();
Object obj = parser.parse(jsonResponse);
JsonObject gsonObj = (JsonObject) obj;
String name = gsonObj.get("access_token").getAsString();
System.out.println("Access Token: " + name);

}catch (Exception e) { e.printStackTrace(); }

Response:

{
Access Token: YKybGvXXAGJA4psDkt5nZG5AnEoy

This access token will be used in next code sample.

2. Sample call to Autodesk API

In this example, we are calling GetOrderDetails API

2.1 Get your CSN, order number, make sure access token has been created by authentication API.

String consumer_secret = "Your Consumer Secret"
String callback_url = "Your callback URL";
String partner_csn = "Your CSN";
String environment_url = "enterprise-api-stg.autodesk.com"; //STG Environment
//token comes from authentication API
String access_token = "Get Your Access Token"

String order_number = "Your order number"
Note - GetOrderDetails API has other parameters as well. Please refer to the API documentation and modify code accordingly.

2.2 Create Signature

String timestamp = Long.toString(new Date().getTime()).substring(0,10);
String credentialCode = callback_url + access_token + timestamp
SecretKeySpec signingKey = new SecretKeySpec(consumer_secret.getBytes(),"HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(credentialCode.getBytes());
String signature = new String(Base64.getEncoder().encode(rawHmac));

2.3 Call Get Order API

String GetOrderAPIUrl = "https://" + environment_url + "/v1/orders?customer_number="+ partner_csn + "&order_number=" + order_number;
HttpGet request = new HttpGet(GetOrderAPIUrl);
request.addHeader("authorization", "Bearer " + access_token);
request.addHeader("signature", signature);
request.addHeader("timestamp", timestamp);
request.addHeader("CSN", partner_csn);
HttpClient client = HttpClientBuilder.create().build();
HttpResponse response = client.execute(request);
String jsonResponse = IOUtils.toString(response.getEntity().getContent(), "UTF-8");
System.out.println(jsonResponse);

Response:

{
"status": "OK",
"message": {
"elements": [{
order_header_array": [{
"order_date": "2019-06-10T00:00:00+0000",
"sales_order_number": "7058108640",
......
"contract_number": "110023207893",

3. Get value from the JSON response

try
{
JsonParser parser = new JsonParser()
Object obj = parser.parse(jsonResponse);
JsonObject gsonObj = (JsonObject) obj;

JsonObject message = (JsonObject) gsonObj.get("message")
JsonArray elements = (JsonArray) message.get("elements");
for (int i = 0; i < elements.size(); i++) {
JsonObject jsonObject1 = (JsonObject) elements.get(i)
JsonArray jsonarray1 = (JsonArray) jsonObject1.get("order_header_array")

for (int j = 0; j < jsonarray1.size(); j++) {
System.out.println("Result: "+((JsonObject) jsonarray1.get(j)).get(
"contract_number").toString())
}
}
}catch (Exception e) { e.printStackTrace(); }