URL: https://api.erpeasy.compels.net/oauth/token
Método: POST
Requisição
Os cabeçalhos são:
| Campo | Tipo | Ocorrência | Descrição | |
|---|---|---|---|---|
| Authorization | A | 1-1 | A combinação do client id com o client secret separados por ":" e codificados em Base64. O conteúdo deverá ser prefixado do literal "Basic ". | |
| Content-Type | A | 1-1 | application/x-www-form-urlencoded | |
O conteúdo é composto por um grupo de argumentos com "chave" e "valor" conforme descrito abaixo:
| Campo | Tipo | Ocorrência | Descrição | |
|---|---|---|---|---|
| grant_type | A | 1-1 | Para este tipo de requisição, utilizar "refresh_token". | |
| refresh_token | A | 1-1 | O refresh_token que será responsável por criar um novo access_token. | |
Resposta
Os cabeçalhos são:
| Campo | Tipo | Ocorrência | Descrição | |
|---|---|---|---|---|
| Set-Cookie | A | 1-1 | Este cabeçalho representa o processamento do servidor para inclusão dos cookies na comunicação. Utilize-o para obter o cookie que representa o refresh_token que será utilizado futuramente para renovar a sua credencial de acesso. | |
O conteúdo é composto por um texto no formato JSON conforme descrito abaixo:
| Campo | Tipo | Ocorrência | Descrição | |
|---|---|---|---|---|
| access_token | A | 1-1 | O access_token que será responsável pelo consumo da API. | |
| token_type | A | 1-1 | O tipo do access_token. | |
| expires_in | I | 1-1 | O tempo (em segundos) para expiração do access_token. | |
| scope | A | 1-1 | O escopo de permissões que o access_token terá. | |
| user_id | I | 1-1 | O identificador do usuário que está sendo representado pelo access_token. | |
| user_name | A | 1-1 | O nome do usuário que está sendo representado pelo access_token. | |
| user_email | A | 1-1 | O e-mail do usuário que está sendo representado pelo acess_token. | |
| company_id | I | 1-1 | O identificador da empresa que está sendo representada pelo access_token. | |
| company_document | A | 1-1 | O CNPJ da empresa que está sendo representada pelo access_token | |
| company_name | A | 1-1 | O nome da empresa que está sendo representada pelo access_token. | |
| jti | A | 1-1 | O identificador único do access_token. | |
Exemplo em Java (JDK 8).
Bibliotecas Utilizadas:
- gson-2.8.2
- httpclient-4.5.5
- httpcore-4.4.9
public class AuthResponse {
@com.google.gson.annotations.SerializedName("access_token")
private String accessToken;
@com.google.gson.annotations.SerializedName("refresh_token")
private String refreshToken;
@com.google.gson.annotations.SerializedName("expires_in")
private long expiresIn;
public String getAccessToken() {
return accessToken;
}
public String getRefreshToken() {
return refreshToken;
}
public void setRefreshToken(String refreshToken) {
this.refreshToken = refreshToken;
}
public long getExpiresIn() {
return expiresIn;
}
} public static AuthResponse refresh(String clientId, String clientSecret, String refreshToken) throws Exception {
String endpoint = "https://api.erpeasy.compels.net/oauth/token";
org.apache.http.client.methods.HttpPost request = new org.apache.http.client.methods.HttpPost(endpoint);
request.setHeader("Authorization", "Basic " + new String(java.util.Base64.getEncoder().encode((clientId + ":" + clientSecret).getBytes())));
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
org.apache.http.client.entity.EntityBuilder builder = org.apache.http.client.entity.EntityBuilder.create();
java.util.List<org.apache.http.NameValuePair> parameters = new java.util.ArrayList<org.apache.http.NameValuePair>();
parameters.add(new org.apache.http.message.BasicNameValuePair("grant_type", "refresh_token"));
builder.setParameters(parameters);
request.setEntity(builder.build());
org.apache.http.client.CookieStore cookieStore = new org.apache.http.impl.client.BasicCookieStore();
org.apache.http.impl.cookie.BasicClientCookie requestCookie = new org.apache.http.impl.cookie.BasicClientCookie("refresh_token", refreshToken);
requestCookie.setDomain("api.erpeasy.compels.net");
requestCookie.setPath("/oauth/token");
cookieStore.addCookie(requestCookie);
org.apache.http.client.HttpClient client = org.apache.http.impl.client.HttpClientBuilder.create().setDefaultCookieStore(cookieStore).build();
org.apache.http.HttpResponse response = client.execute(request);
java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder content = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
content.append(line + "\n");
}
AuthResponse authResponse = (AuthResponse) new com.google.gson.Gson().fromJson(content.toString(), AuthResponse.class);
for (org.apache.http.cookie.Cookie responseCookie : cookieStore.getCookies()) {
if (responseCookie.getName().equals("refresh_token")) {
authResponse.setRefreshToken(responseCookie.getValue());
break;
}
}
return authResponse;
}