O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Introdução a plataforma de aplicativos Redu

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 30 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Semelhante a Introdução a plataforma de aplicativos Redu (20)

Mais de Guilherme (20)

Anúncio

Mais recentes (20)

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. Equipe Estamos 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 disciplina 1. Necessidade de integração de tecnologias 2. 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. Principais funcionalidades
  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ção Resource/authorization Redu Server
  28. 28. OAuth2 : regras 1. Client applications atuam (role play) em nome do resource owner 2. Client applications não guardam login e senha do resource owner 3. 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') 10 11 print 'Visit this URL in your browser: ' + redu.get_authorize_url() 12 16 code = raw_input('Enter the PIN: ') 17 19 data = dict(code=code, grant_type='authorization_code',redirect_uri='') 20 23 access_token = redu.get_access_token('POST', data=data) 25 26 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') 11 12 puts "Already have a PIN? [y/n]:" 13 if gets.chomp == 'n' 14 puts "Authorize: " 15 puts client.auth_code.authorize_url 16 end 17 18 puts "Insert the pin: " 19 pin = gets.chomp 20 token = client.auth_code.get_token(pin) 21 puts "The Access Token is #{token.token}" https://github.com/redu/oauth-consumers

×