URL: https://api.erpeasy.compels.net/oauth/token

Método: POST


Requisição

Os cabeçalhos são:

CampoTipoOcorrênciaDescrição
AuthorizationA1-1A 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-TypeA1-1application/x-www-form-urlencoded


O conteúdo é composto por um grupo de argumentos com "chave" e "valor" conforme descrito abaixo:

CampoTipoOcorrênciaDescrição
grant_typeA1-1Para este tipo de requisição, utilizar "password".
emailA1-1O e-mail do usuário que será responsável pelo consumo da API.
passwordA1-1A senha do usuário que será responsável pelo consumo da API.
companyA1-1O CNPJ da empresa a qual os dados serão "utilizados" pelo consumo da API.


Resposta

Os cabeçalhos são:

CampoTipoOcorrênciaDescrição
Set-CookieA1-1Este 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:

CampoTipoOcorrênciaDescrição
access_tokenA1-1O access_token que será responsável pelo consumo da API.
token_typeA1-1O tipo do access_token.
expires_inI1-1O tempo (em segundos) para expiração do access_token.
scopeA1-1O escopo de permissões que o access_token terá.
user_idI1-1O identificador do usuário que está sendo representado pelo access_token.
user_nameA1-1O nome do usuário que está sendo representado pelo access_token.
user_emailA1-1O e-mail do usuário que está sendo representado pelo acess_token.
company_idI1-1O identificador da empresa que está sendo representada pelo access_token.
company_documentA1-1O CNPJ da empresa que está sendo representada pelo access_token
company_nameA1-1O nome da empresa que está sendo representada pelo access_token.
jtiA1-1O 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 login(String clientId, String clientSecret, String email, String password, String company) 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", "password"));
    parameters.add(new org.apache.http.message.BasicNameValuePair("email", email));
    parameters.add(new org.apache.http.message.BasicNameValuePair("password", password));
    parameters.add(new org.apache.http.message.BasicNameValuePair("company", company));
    builder.setParameters(parameters);
    request.setEntity(builder.build());
    org.apache.http.client.CookieStore cookieStore = new org.apache.http.impl.client.BasicCookieStore();
    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;
  }