Índice

Objetivo

Este documento é direcionado a desenvolvedores, clientes e parceiros que desejam criar aplicações e recursos externos ou internos ao fluig. O fluig possui uma API Pública com os principais serviços disponíveis na plataforma, bem como um componente interno (fluig-sdk-api.jar) que pode ser importado e utilizado para chamadas dos serviços no mesmo contexto do fluig. A API disponibiliza uma documentação de classes e interfaces no padrão Java Doc que pode ser encontrado aqui. Através da API é possível criar mensagens em nome do usuário, adicionar contato como favorito, criar artigos e muito mais. Para que aplicativos possam atuar em nome do usuário a autorização é realizada através do protocolo OAuth, e caso o serviço seja utilizado pelo componente interno, é injetado o EJB para execução dos serviços.


API

API, de Application Programming Interface (Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos pelo software para que aplicativos externos possam utilizar seus recursos em suas aplicações. 

No fluig, a documentação da API está disponível em http://<fluigServer>/api ou aqui.

Todos os serviços são baseados em REST, onde ações de escrita estão limitados à requisições HTTP do tipo POST, e ações de consulta à requisições do tipo GET. 

Disponível a partir da versão 1.1 do fluig.

OAuth

 

A autenticação e autorização de aplicativos externos ao fluig é realizada através do protocolo OAuth 1.0OAuth 1.0a que possibilita que aplicações executem ações em nome do usuário sem armazenar seus dados de acesso (usuário/senha). Também é possível utilizar a API do fluig através de uma sessão válida no navegador de internet.

 

O fluig não é compatível com o protocolo OAuth 2.0.

 

Processo de autenticação:

Para que um aplicativo consiga atuar no fluig em nome de um usuário ou em nome próprio é necessário que ele esteja previamente cadastrado na plataforma fluig com suas chaves pública e privada. Quando o aplicativo está previamente cadastrado no fluig, é possível iniciar o processo de autenticação conforme etapas abaixo:

 

Figura 1 - Exemplo OAuth

 

Para utilização, o aplicativo deve estar previamente cadastrado no fluig.

 

Cadastrar aplicativo no fluig

Para cadastrar um aplicativo no fluig, faça o login como Administrador.

Acompanhe os passos a seguir:

 

  • Vá em: Painel de controle/WCM/Provider Oauth

Figura 2 - Painel administrativo fluig

 

 

 

  • Clique em adicionar e preencha os campos conforme imagem:

    Figura 3 - Cadastro de provedor Oauth 

    Detalhes:

    CampoExemplo
    Código01
    OAuth ProviderWCM
    DescriçãoAplicativo de exemplo
    Acess Token URL

    http://<ServerFluig>/portal/api/rest/oauth/access_token


    Request Token URL

    http://<ServerFluig>/portal/api/rest/oauth/request_token 


    User Authorization URL http://<ServerFluig>/portal/api/rest/oauth/authorize
    Request MethodGET
    Signature MethodHMAC-SHA1


 

 

  • Volte para o painel de controle e vá em: Painel de controle/WCM/Oauth App

    Clique em adicionar e preencha os campos conforme imagem:


Figura 4 - Cadastro de aplicativo Oauth 

Detalhes:

CamposExemplo
 Consumer Key

<chave publica de seu aplicativo>

OAuth Provider

Provedor cadastrado no Passo 2

Consumer Secret<chave secreta de seu aplicativo>


 

  • Opcional: Caso seu aplicativo execute ações em nome próprio, você pode criar um usuário aplicativo. Na mesma tela de  cadastro de aplicativo existe uma ação “Usuário Aplicativo”, ao acessar ela serão gerados tokens exclusivos para o aplicativo. Se as ações do seu aplicativo devem ser executadas em nome de um usuário, então o aplicativo deve passar pelo processo padrão de autenticação OAuth.

Figura 5 - usuário aplicativo

 

Aplicação de Exemplo

Existe uma aplicação desenvolvida pela equipe do fluig que mostra como usar a API. A aplicação está desenvolvida em Java. Você deve possuir o JDK 1.8 instalado para executar a aplicação. A gestão de build e de dependências é feita pelo Maven, então é obrigatório tê-lo instalado no ambiente de desenvolvimento a ser utilizado.

fluig-client-demo.zip

Baixe o arquivo e descompacte-o em um diretório de sua preferência.

O projeto basicamente consiste em um pom.xml (Project Object Model, arquivo padrão do Maven) e uma classe Java chamada FluigClientExample. Abra a classe e verifique a documentação gerada a partir de comentários. Você verá que é necessário construir um objeto FluigClient e este objeto recebe alguns parâmetros como host, consumer key e consumer secret. Você deve alterar os valores passados na construção para um host conhecido e informar o consumer key e secret da aplicação de sua responsabilidade, conforme o código adiante:

		FluigClient fluig = new FluigClient()
				.setHost("http://127.0.0.1:8080")
				.setConsumerKey("informe aqui o seu consumer key")
				.setConsumerSecret("informe aqui o seu consumer secret")
				.connect();

Mais abaixo no código, podemos reparar que a aplicação cria e lê posts de comunidades. Você deve informar uma comunidade válida do seu ambiente para executar a aplicação demonstração;

String comunidadeAlias = "coloque_aqui_alias_de_alguma_comunidade";

Depois de realizar as alterações, entre no diretório gerado e você notará que o arquivo pom.xml  se localiza na raiz do projeto.

Para realizar o build do projeto, digite:

$ mvn clean install

Durante o processo de build o Maven irá exibir vários logs, como dependências sendo baixadas dentre outros.

Depois do build finalizado com sucesso, repare que o arquivo target/api-client-demo-jar-with-dependencies.jar foi gerado, este arquivo é um executável Java. Para executá-lo digite o comando:

$ java -jar target/api-client-demo-jar-with-dependencies.jar

Se você reparar na classe FluigClientExample, a execução irá: listar os usuários, criar uma publicação na página pessoal do usuário, criar uma publicação em uma comunidade e listar as publicações de uma comunidade. Durante a execução os logs dos resultados das chamadas serão exibidos no console.

Acesso ao Java DOC do componente SDK

Para ter acesso à documentação JAVA DOC do componente SDK, clique aqui.