Successfully reported this slideshow.
Plataforma de Aplicativos                    101             Guilherme Cavalcanti    Líder técnico, plataforma de aplicati...
Apresentações• Guilherme Cavalcanti •   Desenvolvedor Web desde 2007 •   Granduando, CIn-UFPE •   Co-fundador do Redu •   ...
EquipeEstamos contratando!jobs@redu.com.br     • 15 pessoas        • Designers        • Desenvolvedores        • Pesquisad...
O que é a plataforma de            aplicativos?
Mercado de educação• Editoras• Produtoras de mídias  educativas• Sistemas de Gestão  Acadêmica• Marketplace de  aplicativo...
Importância da disciplina1. Necessidade de integração de tecnologias2. Demanda por desenvolvedores de   aplicativos educac...
Tipo de aplicativos• Canvas• Externos • Mobile, desktop, etc• Plugins sociais
Canvas
Canvas• Funciona dentro do Redu• Like facebook apps• Para o usuário final, faz parte do Redu
Principaisfuncionalidades
Sugestões de aplicativos
Infraestrutura• Se comunica com o Redu via HTTP (API  REST)• As simple as an <iframe>• Plugins sociais (em breve)• SDK Jav...
Mais informações• Vai ficar dentro da Disciplina• Largura máxima de 720px• Autenticação via JavaScript (OAuth2)• Requisiçõe...
Aplicativos  externos
Aplicativos externos• Mobile: aplicativos Android, iOS• Plugins sociais: mural, meus cursos• Aplicativos desktop  • Sistem...
Infraestrutura• Se comunica com o Redu via HTTP (API  REST)• SDKs e wrappers a serem construídos
O que temos    pronto?
API REST• Plain old HTTP• 100% documentada• Autenticação por OAuth2
API REST
WTH: API...is a specification intended to be used as an interface by software components to        communicate with each ot...
WHT: REST• Estilo arquitetural para sistemas  distribuidos• Levado em conta na construção da  World Wide Web• Amplamente u...
WHT: REST• Client-server: separação de  responsabilidades• Stateless: escalabilidade• Uniform inteface: portabilidade
Documentação• Disponível em developers.redu.com.br• Open-source: • https://github.com/redu/redu.github.com/ • Aceitamos co...
Content-type• JSON• XML (alguém precisa?)• form-urlencoded
Autenticação
OAuth2• Como descobrir quem  fez qual requisição?• OAuth2 Provider• Tudo depende de um  token
Papéis   Resource owner        Usuário da aplicação  Client application          AplicaçãoResource/authorization          ...
OAuth2 : regras1. Client applications atuam (role play)   em nome do resource owner2. Client applications não guardam logi...
Pedindo seu token em                                        Python 1   from rauth.service import OAuth2Service 2 4   redu ...
Pedindo seu token em                                        Ruby 3   require "oauth2" 4 5   consumer_key =YF6btoken3jek9tR...
Upcoming SlideShare
Loading in …5
×

Introdução a plataforma de aplicativos Redu

6,387 views

Published on

Slides do workshop sobre construção de aplicativos educacionais utilizando o Redu (http://www.redu.com.br) como plataforma.

Published in: Education
  • Be the first to comment

Introdução a plataforma de aplicativos Redu

  1. 1. Plataforma de Aplicativos 101 Guilherme Cavalcanti Líder técnico, plataforma de aplicativos
  2. 2. Apresentações• Guilherme Cavalcanti • Desenvolvedor Web desde 2007 • Granduando, CIn-UFPE • Co-fundador do Redu • Líder técnico do time da plataforma de aplicativos @ Redu • Twitter/Delicious/Github: • /guiocavalcanti
  3. 3. EquipeEstamos contratando!jobs@redu.com.br • 15 pessoas • Designers • Desenvolvedores • Pesquisadores • Negócio
  4. 4. O que é a plataforma de aplicativos?
  5. 5. Mercado de educação• Editoras• Produtoras de mídias educativas• Sistemas de Gestão Acadêmica• Marketplace de aplicativos educacionais
  6. 6. Importância da disciplina1. Necessidade de integração de tecnologias2. Demanda por desenvolvedores de aplicativos educacionais
  7. 7. Tipo de aplicativos• Canvas• Externos • Mobile, desktop, etc• Plugins sociais
  8. 8. Canvas
  9. 9. Canvas• Funciona dentro do Redu• Like facebook apps• Para o usuário final, faz parte do Redu
  10. 10. Principaisfuncionalidades
  11. 11. Sugestões de aplicativos
  12. 12. Infraestrutura• Se comunica com o Redu via HTTP (API REST)• As simple as an <iframe>• Plugins sociais (em breve)• SDK JavaScript (em breve)• Redu Bootstrap (alpha)
  13. 13. Mais informações• Vai ficar dentro da Disciplina• Largura máxima de 720px• Autenticação via JavaScript (OAuth2)• Requisições cross-domain permitidas (CORS)• Inicialmente compatível apenas com FF e Chrome (versões recentes)
  14. 14. Aplicativos externos
  15. 15. Aplicativos externos• Mobile: aplicativos Android, iOS• Plugins sociais: mural, meus cursos• Aplicativos desktop • Sistema de gestão acadêmica • ERPs• Analytics services• Games
  16. 16. Infraestrutura• Se comunica com o Redu via HTTP (API REST)• SDKs e wrappers a serem construídos
  17. 17. O que temos pronto?
  18. 18. API REST• Plain old HTTP• 100% documentada• Autenticação por OAuth2
  19. 19. API REST
  20. 20. WTH: API...is a specification intended to be used as an interface by software components to communicate with each other. Someone at Wikipedia
  21. 21. WHT: REST• Estilo arquitetural para sistemas distribuidos• Levado em conta na construção da World Wide Web• Amplamente utilizado em Webservices públicos• Roy Fielding
  22. 22. WHT: REST• Client-server: separação de responsabilidades• Stateless: escalabilidade• Uniform inteface: portabilidade
  23. 23. Documentação• Disponível em developers.redu.com.br• Open-source: • https://github.com/redu/redu.github.com/ • Aceitamos correções
  24. 24. Content-type• JSON• XML (alguém precisa?)• form-urlencoded
  25. 25. Autenticação
  26. 26. OAuth2• Como descobrir quem fez qual requisição?• OAuth2 Provider• Tudo depende de um token
  27. 27. Papéis Resource owner Usuário da aplicação Client application AplicaçãoResource/authorization Redu Server
  28. 28. OAuth2 : regras1. Client applications atuam (role play) em nome do resource owner2. Client applications não guardam login e senha do resource owner3. Client applications pedem autorização para atuar em nome do resource owner
  29. 29. Pedindo seu token em Python 1 from rauth.service import OAuth2Service 2 4 redu = OAuth2Service( 5 name=redu, 6 authorize_url=http://redu.com.br/oauth/authorize, 7 access_token_url=http://redu.com.br/oauth/token, 8 consumer_key=YF6tokenI45Z2tokenk9ttokenoDmCBH, 9 consumer_secret=kMkrtokenhfoMHLZOtokenCGAZRZtoken)1011 print Visit this URL in your browser: + redu.get_authorize_url()1216 code = raw_input(Enter the PIN: )1719 data = dict(code=code, grant_type=authorization_code,redirect_uri=)2023 access_token = redu.get_access_token(POST, data=data)2526 print The access token is: + access_token[access_token] https://github.com/redu/oauth-consumers
  30. 30. Pedindo seu token em Ruby 3 require "oauth2" 4 5 consumer_key =YF6btoken3jek9tRbGptokenCBH 6 consumer_secret =kMkrBKyadsMHLZO3MBdasZRZEdasL 7 8 client = OAuth2::Client.new(consumer_key, consumer_secret,10 :site => http://redu.com.br)1112 puts "Already have a PIN? [y/n]:"13 if gets.chomp == n14 puts "Authorize: "15 puts client.auth_code.authorize_url16 end1718 puts "Insert the pin: "19 pin = gets.chomp20 token = client.auth_code.get_token(pin)21 puts "The Access Token is #{token.token}" https://github.com/redu/oauth-consumers

×