Árvore de páginas

Índice


Descrição


O exemplo disponibilizado nesta página demonstra como solicitar o token de acesso OAuth e realizar uma chamada à API do Identity via JavaScript (AJAX).


Autorização


Para utilizar os endpoints da API com AJAX, primeiramente é necessário solicitar autorização para obter um token de acesso (access token). Os passos abaixo usam o Swagger como referência para explanar esse procedimento.


    Caso seja utilizado o ambiente de homologação, a URL da API será https://[contexto].customerfi.com/rest/swagger-ui/index.html.



    • Expandir o serviço oauth2.
    • Acessar o endpoint GET /rest/v2/oauth2/clients/{clientId}/assertion.
    • Preencher o parâmetro clientId com o ID do Cliente da empresa.

    Para obter o clientId, acessar o menu Configuração → aba Segurança → REST API v2 → ID do Cliente.



    • Ao acionar Try it out!, será gerado o Client Assertion no Responde Body.
    • O valor do Client Assertion deve ser copiado para utilização no próximo passo.



    • Acessar o endpoint POST /rest/v2/oauth2/auth.
    • Preencher o valor do Client Assertion obtido no passo anterior no campo assertion.
    • Acionar Try it out! para obter o token de acesso (access token).



    • Para utilizar todos os endpoints da API do Identity, copiar o access token para campo api_key no canto superior direito da página e acionar Explore.

    Exemplo


    O exemplo de código-fonte a seguir demonstra como realizar o procedimento de autorização e obtenção do access token via AJAX, bem como a chamada de um endpoint para recuperar os dados de uma empresa (contexto) através da API do Identity.

    O access_token obtido a partir da autorização na API deve ser enviado no header de todas as requisições.

    // Exemplo de código para obter as informações de uma empresa por AJAX.
    
    var clientId = '<CLIENT_ID>'; // Substituir '<CLIENT_ID>' pelo clientId da empresa
    var companyId ='<COMPANY_ID>'; // Substituir '<COMPANY_ID>' pelo companyId da empresa
    var domainUrl = 'https://<CONTEXT>.fluigidentity.com/'; /* Substituir '<CONTEXT>' pelo contexto da empresa */
    var apiUrl = domainUrl + 'rest/v2/';
    
    // Get client assertion
    function getClientAssertion(clientId) {
      $.ajax({
        url:apiUrl + 'oauth2/clients/' + clientId + '/assertion',
        crossDomain:true // se necessário cross domain
      })
      .done(function(data){
        getAccessToken(data);
      })
      .fail(function(error){
        console.log(error);
      });
    }
    
    // Grant a new refresh token
    function getAccessToken(assertion) {
      var data = {
        'grant_type':'urn:ietf:params:oauth:grant-type:jwt-bearer',
        'assertion':assertion
      };
      $.ajax({
        url:apiUrl + 'oauth2/auth',
        crossDomain:true, // se necessário cross domain
        data:data,
        type:'POST'
      })
      .done(function(data){
        getCompany(data.access_token,companyId)
      })
      .fail(function(error){
        console.log(error);
      });
    }
    
    // Get a company
    function getCompany(authorization, companyId) {
      $.ajax({
        url:apiUrl + 'companies/' + companyId,
        crossDomain:true, // se necessário cross domain
        headers:{
          'Authorization':authorization
         }
      })
      .done(function(data){
        console.log(data);
      })
      .fail(function(error){
        console.log(error);
      });
    }
    
    getClientAssertion(clientId);