Oi pessoal ,
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 , 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 !