SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Plataforma de Aplicativos
                    101
             Guilherme Cavalcanti
    Líder técnico, plataforma de aplicativos
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
Equipe

Estamos contratando!
jobs@redu.com.br




     • 15 pessoas
        • Designers
        • Desenvolvedores
        • Pesquisadores
        • Negócio
O que é a plataforma de
            aplicativos?
Mercado de educação


• Editoras
• Produtoras de mídias
  educativas
• Sistemas de Gestão
  Acadêmica
• Marketplace de
  aplicativos educacionais
Importância da disciplina




1. Necessidade de integração de tecnologias
2. Demanda por desenvolvedores de
   aplicativos educacionais
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
Principais
funcionalidades
Sugestões de aplicativos
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)
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)
Aplicativos
  externos
Aplicativos externos


• Mobile: aplicativos Android, iOS
• Plugins sociais: mural, meus cursos
• Aplicativos desktop
  • Sistema de gestão acadêmica
  • ERPs

• Analytics services
• Games
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 other.

                         Someone at Wikipedia
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
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 correções
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ção


Resource/authorization
                                Redu
       Server
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
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
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

Mais conteúdo relacionado

Semelhante a Introdução a plataforma de aplicativos Redu

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaLambda3
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilComo um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilLuis Cipriani
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasGuilherme
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoDavid Robert Camargo de Campos
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaSensedia
 
Modern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticaçãoModern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticaçãoJorge Tressino Rua
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 

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

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectada
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilComo um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Como um grande sistema REST funciona
Como um grande sistema REST funcionaComo um grande sistema REST funciona
Como um grande sistema REST funciona
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Spring social
Spring socialSpring social
Spring social
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
Modern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticaçãoModern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticação
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 

Mais de Guilherme

Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu CódigoWhere Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu CódigoGuilherme
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs RESTGuilherme
 
Redu walled garden
Redu walled gardenRedu walled garden
Redu walled gardenGuilherme
 
Desafio de crescer
Desafio de crescerDesafio de crescer
Desafio de crescerGuilherme
 
Consumindo APIs REST com Ruby
Consumindo APIs REST com RubyConsumindo APIs REST com Ruby
Consumindo APIs REST com RubyGuilherme
 
Aplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsAplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsGuilherme
 
Aplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma ReduAplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma ReduGuilherme
 
FLOSS and Startups
FLOSS and StartupsFLOSS and Startups
FLOSS and StartupsGuilherme
 
Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding DojoGuilherme
 
Dojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome StylesheetsDojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome StylesheetsGuilherme
 
CSS first steps
CSS first stepsCSS first steps
CSS first stepsGuilherme
 
How does the Web work?
How does the Web work?How does the Web work?
How does the Web work?Guilherme
 
0 introducao padroes_web
0 introducao padroes_web0 introducao padroes_web
0 introducao padroes_webGuilherme
 
Plano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu RespostasPlano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu RespostasGuilherme
 
Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX Guilherme
 
Desevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQueryDesevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQueryGuilherme
 
3 padroes-web-intro-javascript
3 padroes-web-intro-javascript3 padroes-web-intro-javascript
3 padroes-web-intro-javascriptGuilherme
 
Desevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSSDesevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSSGuilherme
 
Desevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTMLDesevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTMLGuilherme
 

Mais de Guilherme (20)

Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu CódigoWhere Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
Redu walled garden
Redu walled gardenRedu walled garden
Redu walled garden
 
Desafio de crescer
Desafio de crescerDesafio de crescer
Desafio de crescer
 
Consumindo APIs REST com Ruby
Consumindo APIs REST com RubyConsumindo APIs REST com Ruby
Consumindo APIs REST com Ruby
 
Aplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsAplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com Rails
 
Aplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma ReduAplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma Redu
 
FLOSS and Startups
FLOSS and StartupsFLOSS and Startups
FLOSS and Startups
 
Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding Dojo
 
Dojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome StylesheetsDojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome Stylesheets
 
Sass
SassSass
Sass
 
CSS first steps
CSS first stepsCSS first steps
CSS first steps
 
How does the Web work?
How does the Web work?How does the Web work?
How does the Web work?
 
0 introducao padroes_web
0 introducao padroes_web0 introducao padroes_web
0 introducao padroes_web
 
Plano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu RespostasPlano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu Respostas
 
Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX
 
Desevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQueryDesevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQuery
 
3 padroes-web-intro-javascript
3 padroes-web-intro-javascript3 padroes-web-intro-javascript
3 padroes-web-intro-javascript
 
Desevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSSDesevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSS
 
Desevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTMLDesevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTML
 

Último

AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 

Último (20)

Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 

Introdução a plataforma de aplicativos Redu

  • 1. Plataforma de Aplicativos 101 Guilherme Cavalcanti Líder técnico, plataforma de aplicativos
  • 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. Equipe Estamos contratando! jobs@redu.com.br • 15 pessoas • Designers • Desenvolvedores • Pesquisadores • Negócio
  • 4. O que é a plataforma de aplicativos?
  • 5. Mercado de educação • Editoras • Produtoras de mídias educativas • Sistemas de Gestão Acadêmica • Marketplace de aplicativos educacionais
  • 6. Importância da disciplina 1. Necessidade de integração de tecnologias 2. Demanda por desenvolvedores de aplicativos educacionais
  • 7. Tipo de aplicativos • Canvas • Externos • Mobile, desktop, etc • Plugins sociais
  • 9. Canvas • Funciona dentro do Redu • Like facebook apps • Para o usuário final, faz parte do Redu
  • 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. 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)
  • 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. Infraestrutura • Se comunica com o Redu via HTTP (API REST) • SDKs e wrappers a serem construídos
  • 17. O que temos pronto?
  • 18. API REST • Plain old HTTP • 100% documentada • Autenticação por OAuth2
  • 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. 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. WHT: REST • Client-server: separação de responsabilidades • Stateless: escalabilidade • Uniform inteface: portabilidade
  • 23. Documentação • Disponível em developers.redu.com.br • Open-source: • https://github.com/redu/redu.github.com/ • Aceitamos correções
  • 24. Content-type • JSON • XML (alguém precisa?) • form-urlencoded
  • 26. OAuth2 • Como descobrir quem fez qual requisição? • OAuth2 Provider • Tudo depende de um token
  • 27. Papéis Resource owner Usuário da aplicação Client application Aplicação Resource/authorization Redu Server
  • 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. 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. 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