Get the Access Token
- Adobe Sign API requires OAuth-based authentication. Once you've registered your application and received your necessary credentials, you must obtain an access token.
- Use Adobe’s Authorization Code Grant to get a refresh token. You will first direct the user to Adobe’s authorization URL with your client ID, prompting them to authorize your application.
- After user authorization, Adobe redirects to your specified redirect URL with an authorization code. You will exchange this code for a refresh token.
- Use the refresh token to obtain an access token, which is necessary for making API requests.
Set Up Dependencies
- Use a library like Apache HttpComponents for handling HTTP requests in your Java application. Add relevant dependencies to your `pom.xml` if you're using Maven.
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
Create a Java Client for Adobe Sign API
- Create a simple Java client to interact with Adobe Sign API. You will need to set the `Authorization` header with the Bearer token.
- You can use the `HttpClient` from Apache HttpComponents to make requests. Below is an example of how to create a document signing request.
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class AdobeSignClient {
private static final String ACCESS_TOKEN = "your_access_token";
private static final String API_URL = "https://api.adobesign.com/api/rest/v6/agreements";
public void sendAgreement() throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpPost postRequest = new HttpPost(API_URL);
postRequest.addHeader("Authorization", "Bearer " + ACCESS_TOKEN);
postRequest.addHeader("Content-Type", "application/json");
String jsonPayload = "{\"fileInfos\": [{\"documentURL\": {\"url\": \"https://example.com/sample.pdf\"}}], \"name\": \"Sample Agreement\", \"participantSetsInfo\": [{\"memberInfos\": [{\"email\": \"example@example.com\"}], \"order\": 1, \"role\": \"SIGNER\"}], \"signatureType\": \"ESIGN\"}";
StringEntity input = new StringEntity(jsonPayload);
postRequest.setEntity(input);
HttpResponse response = httpClient.execute(postRequest);
String responseString = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(responseString);
} finally {
httpClient.close();
}
}
}
Make API Calls
- Using the Java client created, you can now call Adobe Sign API methods like sending an agreement for signing, checking agreement status, or updating agreement details.
- The API responds with JSON, which you must parse to handle in your application. Consider using a library like Jackson or Gson for this purpose.
Error Handling and Logging
- Keep in mind error handling, as network issues or authorization errors might occur. Implement proper exception handling to manage HttpClient’s response.
- Logging is key for monitoring interactions with Adobe Sign API. Use a logging library like SLF4J or Log4j for effective logging.
Refreshing Access Tokens
- Since access tokens expire, ensure your application can automatically request a new access token using the refresh token.
- Store refresh tokens securely and renew the access token whenever you receive a 401 Unauthorized error from Adobe Sign API.