Primeiros passos no uso da API do OpenRedu - Introdução

Oi pessoal :grinning:,

Para consumir a API do OpenRedu é preciso criar uma aplicação na instância que você quer usar.
O OpenRedu não cede dados do usuários sem a expressa autenticação do mesmo. Para que os aplicativos acessem as informações do usuário é necessário que ele autorize explicitamente este acesso. Para isso, o aplicativo precisa implementar o processo de autenticação do usuário através do protocolo OAuth 2.0.

Vamos optar pela instância openredu.com, mantida pelo CIn/UFPE e a mais adequada para exemplos e testes.

Começemos pela criação da aplicação que consumirá os serviços do OpenRedu, para tal, temos que ir no endereço de criação de uma nova aplicação, nesse caso,
http://openredu.com/pessoas/{meu-login}/aplicativos/criar

Na aba “Novo aplicativo” é possível entrar com as informações que, unicamente, identificam sua aplicação, após registrar o novo aplicativo é preciso pegar suas credenciais (Chave do consumer e Segredo do consumer), outra informação bastante útil são dos endpoints do OAuth, todas essas informações podem ser encontradas na aba “Meus aplicativos”:
URL de autorização: http://openredu.com/oauth/authorize
URL do token: http://openredu.com/oauth/token

Com essas informações podemos para a próxima etapa e obter o nosso Access Token.

Para aplicações cliente, precisamos navegar para,
http://openredu.com/oauth/authorize?client_id={chave-do-consumer}&response_type=code

Fazendo isso para a nossa aplicação criada, teremos,
http://openredu.com/oauth/authorize?client_id=sSTAPprHw4InsFRGoj3Hz7GfSABlMFFjIhcQlIK5&response_type=code

Ao entrar nessa página você deve se deparar com o pedido de autorização ao acesso de suas informações.

Após a confirmação você receberá um PIN, é com ele que você terá acesso ao seu Access Token.

Agora que você tem o PIN precisamos extrair um Access Token dele, para isso, devemos disparar uma requisição para
http://openredu.com/oauth/token?client_id={chave-do-consumer}&client_secret={segredo-do-consumer}&code={pin}&grant_type=authorization_code

Fazendo isso para a nossa aplicação criada, teremos,
http://openredu.com/oauth/token?client_id=sSTAPprHw4InsFRGoj3Hz7GfSABlMFFjIhcQlIK5&client_secret=I6CtByPPjTkhSOUp10wIO3Y258kxoZkFuOhU1uOg&code=nBKU7G0l82URfNyiOacd&grant_type=authorization_code

O que te será apresentado na tela, é um JSON contendo o seu Access Token, note também a presença de um elemento token_type, ele descreve o tipo de token usado pelo OpenRedu para a implementação do OAuth 2.0, não é preciso se atentar a essa informação.
{“access_token”:“ek4LAzjpmDPLxPiDlYF8nY0iiCa3U985Y6tyBMRe”,“token_type”:“bearer”}

Agora que já temos o Access Token podemos começar a brincar. Lembrando que todas as vezes que desejarmos consumir um recurso da API é preciso passar o Access Token como query string da requisição.

Quem eu sou? Qual é a minha idade? A API pode te responder,
Acessando http://openredu.com/api/me você receberá informações do usuário logado, que representa você mesmo :grin:, lembrando sempre de passar o Access Token como query string, devemos ter http://openredu.com/api/me?access_token=ek4LAzjpmDPLxPiDlYF8nY0iiCa3U985Y6tyBMRe. Após acessar, você terá um JSON, como este, contendo todas as informações do usuário logado.
{
“thumbnails”:[
{
“size”:“24x24”,
“href”:"/assets/missing_users_thumb_24.png"
},
{
“size”:“32x32”,
“href”:"/assets/missing_users_thumb_32.png"
},
{
“size”:“48x48”,
“href”:"/assets/missing_users_thumb_48.png"
},
{
“size”:“64x64”,
“href”:"/assets/missing_users_thumb_64.png"
},
{
“size”:“90x90”,
“href”:"/assets/missing_users_thumb_90.png"
},
{
“size”:“110x110”,
“href”:"/assets/missing_users_thumb_110.png"
},
{
“size”:“160x160”,
“href”:"/assets/missing_users_thumb_160.png"
}
],
“id”:554,
“login”:“horaciojcfilho”,
“email”:“hjcf@cin.ufpe.br”,
“first_name”:“Horácio”,
“last_name”:“Filho”,
“friends_count”:0,
“created_at”:“2015-11-04T15:34:08-02:00”,
“updated_at”:“2016-07-12T04:02:16-03:00”,
“interested_areas”:[

],
“social_networks”:[

],
“links”:[
{
“rel”:“self”,
“href”:“http://openredu.com/api/users/horaciojcfilho
},
{
“rel”:“enrollments”,
“href”:“http://openredu.com/api/users/horaciojcfilho/enrollments
},
{
“rel”:“statuses”,
“href”:“http://openredu.com/api/users/horaciojcfilho/statuses
},
{
“rel”:“timeline”,
“href”:“http://openredu.com/api/users/horaciojcfilho/statuses/timeline
},
{
“rel”:“contacts”,
“href”:“http://openredu.com/api/users/horaciojcfilho/contacts
},
{
“rel”:“chats”,
“href”:“http://openredu.com/api/users/horaciojcfilho/chats
},
{
“rel”:“connections”,
“href”:“http://openredu.com/api/users/horaciojcfilho/connections
}
]
}

Toda a documentação referente à API pode ser encontrada em http://developers.openredu.com, incluindo todos os endpoints da API e o significado dos elementos retornados.

Se divirtam :blush::smile:!

Belo post @horaciojcfilho!

Você foi tão minucioso na explicação que gostaria até de sugerir a criação de um tópico em nossa wiki sobre o uso da API, o que vc acha dessa contribuição?

Aproveito pra lembrar que a instância ead.openredu.com não é “publica”. Trata-se de uma instância mantida pela EMC2 para uso exclusivo dos alunos da rede publica estadual. Sendo assim, recomendamos que testes e demonstrações sejam realizadas na instância openredu.com, mantida pelo Cin/UFPE.

1 curtida

Oi @bouckaert,

Muito obrigado, man, adorei a sugestão de contribuir com a wiki :heart_eyes::blush:. Ele ainda precisa de uma parte 2, porque falta adicionar como se obtém o Access Token para aplicações web e como usá-lo através do cabeçalho HTML Authentication, fechando esses dois pontos ele tá pronto para ser postado lá :grin:.

Desculpas pela confusão quanto às instâncias, removi as referências à instância da EMC2 e atualizei os links da postagem, valeu pelo aviso :wink:.

1 curtida

Pessoal,

Qual a experiência de vocês para consumir uma API de terceiros, por exemplo, digamos que necessito integrar o Google Driver, Google Docs, ou um outro serviço de repositório de arquivos, já fizeram algo neste sentido, mesmo que testes?