SlideShare uma empresa Scribd logo
1 de 19
Desenvolvimento de aplicativos para o Facebook Apresentação de disciplina: Desenvolvimento de Aplicações na Web Professor Hugo Paredes Jorge Lima jlima@utad.pt Ricardo Rodrigues Nunes rrnunes@utad.pt Maio/2011
Por que desenvolver (ou não) aplicações para o Facebook? “Porque se torna muito mais fácil divulgar esta aplicação, uma vez que as pessoas estão em constante comunicação umas com as outras.” KatyTeixeira “Facebook é cada vez mais popular .” Fábio Escaleira “Porque o facebook tornou-se uma forma de publicidade quase gratuita e muito eficiente.” Miguel Araujo “um utilizador usar a aplicação e partilhar no mural, vários utilizadores aderem, ou seja, é simples aumentar a popularidade da aplicação.” Cesar Meira 2/18 Obs. Respostas dos alunos
Audiência Global Audiência Global : 667,020,540 3/18 Fonte: checkfacebook.com
Portugal no Facebook Fonte: checkfacebook.com
Por onde começar?  FacebookDevelopers http://developers.facebook.com/ FacebookDocumentation http://developers.facebook.com/docs/ FacebookForum http://forum.developers.facebook.net/ FacebookBlog http://developers.facebook.com/blog/ FacebookShowcase http://developers.facebook.com/showcase/ 5/18
Tipos de Aplicações Dois tipos diferentes de aplicações Facebook: aplicação desktop aplicação do web Três maneiras diferentes de uma aplicação interagir com o Facebook: uma aplicação externa interagindo por meio de uma API remota um IFRAME dentro do próprio site utilizando a linguagem  de marcação do Facebook (FBML) 6/18
Onde vender as aplicações que desenvolvi? Sitepointmarket http://sitepointmarket.com/ Appbid http://www.appbid.com/ 7/18
A nossa 1ª aplicação http://developers.facebook.com 8/18
 MyApps, Login [+SetUpNewApp]  9/18
OOPS! O Facebook é muito chato e está sempre a mudar. 10/18
Projecto PLAYER 11/18 Login = App ID + App Secret
12/18
<!doctypehtml> <html> <head> <title>Exemplo de login do Facebook</title> <script type="text/javascript"> FB.login( function(response) { if(response.session) { if(response.perms) 	{ 	// utilizador estáautenticado e deu permissões. 	// perms = CSV (lista de permissoes separada por virgulas)  	<?phpecho $_REQUEST['access_token'];?> 	} else 	{ 	// utilizador autenticado mas não deu permissões 	} } else { // userisnotloggedin } }, {perms:'user_groups'} //pedir para ler os grupos de um utilizador ); </script> </head> 13/18
if($me) { 	<ahref=“echo$logoutUrl;<imgsrc=http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif></a> } else { 	<ahref=“echo$loginUrl;“<imgsrc=http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif></a> //Sacar informação sobre os grupos $ch=curl_init(); curl_setopt($ch,CURLOPT_URL, https://graph.facebook.com/".$session['uid']."/groups?scope=user_groups&access_token=".$session['access_token']); curl_setopt($ch,CURLOPT_HEADER,0); curl_exec ($ch ); curl_close($ch); Outras permissões:  user_about_me ,user_activities, user_birthday ,birthday_dateproperty,user_checkinsuser_education_history,user_events, user_hometown , user_interests, user_likes,user_location, user_notes, user_online_presence ,user_photo_video_tags,user_photos , user_relationships, user_relationship_details,user_religion_politics ,user_status, user_videos,user_website,  user_work_history,  email , read_friendlists, read_insights, read_mailbox,read_requests, read_stream, xmpp_login, ads_management 14/18
JSON Quais são os dados publicamente acessíveis? Array ( (...) 	[83] =>  	{ 		"id":"100001097790346", 		"name":"Bruno Vieira", 		"first_name":"Bruno", 		"last_name":"Vieira", 		"link":"http:www.facebook.compeopleBruno-Vieira100001097790346", 		"gender":"male", 		"locale":"pt_PT“ } ) Podem converter para um objecto, ou para um array, com json_decode Array (     [0] => (...)     [1] => Array         (             [0] => 100001097790346             [1] => Bruno Vieira             [2] => 175         ) ) 15/18
Graph API https://graph.facebook.com/331218348435/attending?access_token=.... {    "data": [       {          "name": "SergioDagach",          "id": "707855857",          "rsvp_status": "attending"       },       {          "name": "Tama Taylor",          "id": "567460175",          "rsvp_status": "attending"       },       {          "name": "BrianThornton",          "id": "1695410038",          "rsvp_status": "attending"       },(…) ] } 16/18
curl_multi! :D //Temos umarray de IDs de pessoas que não especificaram o país, tirado da BD //Vamos construir umarray de URLs (FACEBOOK GRAPH API) para passar ao cURL foreach($bdArrayas$k=>$bd)  $urlArray[]="http://graph.facebook.com/$bd"; //Temos de construir umarray de handles / file descriptors / sockets (MULTITHREADED)  foreach($urlArrayas$k=>$u) {               $h=curl_init(); curl_setopt($h,CURLOPT_URL,$u); curl_setopt($h,CURLOPT_HEADER,0); curl_setopt($h,CURLOPT_RETURNTRANSFER,1); $handleArray[]=$h; } $mh=curl_multi_init(); foreach($handleArrayas$k=>$h)curl_multi_add_handle($mh,$h); do   curl_multi_exec($mh,$running); while($running>0);	 //Espera que todos acabem de correr //Array preenchido com resultados das chamadas  à Graph API, em JSON foreach($handleArrayas$k=>$h)  $dataArray[$k]=curl_multi_getcontent($h); foreach($handleArrayas$k=>$h)  curl_multi_remove_handle($mh,$h);  curl_multi_close($mh);          //Inferir país a partir da linguagem foreach ($handleArrayas$k=>$d) { if(strlen($d)>0)  $tempArray=json_decode($d,true); if(($tempArray['locale']=="pt_PT")$idArray[]=array($tempArray['id'],$tempArray['name'],157);    }  //Array com países inferidospara quem não especificou um país foreach($idArray  as $k=>$i){ //corrigir a BD } 17/18
X/FBML 18/18
Desenvolvimento de aplicativos para o Facebook Apresentação de disciplina: Desenvolvimento de Aplicações na Web Professor Hugo Paredes Jorge Lima jlima@utad.pt Ricardo Rodrigues Nunes rrnunes@utad.pt Maio/2011

Mais conteúdo relacionado

Semelhante a Desenvolvimento de aplicativos para o Facebook

2009 05 20 Floripa Flex
2009 05 20 Floripa Flex2009 05 20 Floripa Flex
2009 05 20 Floripa FlexEduardo Kraus
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da WebJose Berardo
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosRegis Magalhães
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE PoliglotaPhil Calçado
 
Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Bruno Borges
 
rails_and_agile
rails_and_agilerails_and_agile
rails_and_agileJuan Maiz
 
Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebBruno Borges
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
Smarty Template Engine
Smarty Template EngineSmarty Template Engine
Smarty Template EngineDiego Tremper
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaMilfont Consulting
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Jaime Schettini
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDBRodrigo Hjort
 
Django + extjs pelos forms
Django + extjs pelos formsDjango + extjs pelos forms
Django + extjs pelos formsMoacir Filho
 

Semelhante a Desenvolvimento de aplicativos para o Facebook (20)

2009 05 20 Floripa Flex
2009 05 20 Floripa Flex2009 05 20 Floripa Flex
2009 05 20 Floripa Flex
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da Web
 
Facelets
FaceletsFacelets
Facelets
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
 
Os3
Os3Os3
Os3
 
Php 04 Mysql
Php 04 MysqlPhp 04 Mysql
Php 04 Mysql
 
(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota(Portuguese) Java EE Poliglota
(Portuguese) Java EE Poliglota
 
Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6
 
rails_and_agile
rails_and_agilerails_and_agile
rails_and_agile
 
Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento Web
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
Spring Capitulo 02
Spring Capitulo 02Spring Capitulo 02
Spring Capitulo 02
 
Smarty Template Engine
Smarty Template EngineSmarty Template Engine
Smarty Template Engine
 
Php 08 Oo
Php 08 OoPhp 08 Oo
Php 08 Oo
 
HTML5 Hands On
HTML5 Hands OnHTML5 Hands On
HTML5 Hands On
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Os1
Os1Os1
Os1
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Django + extjs pelos forms
Django + extjs pelos formsDjango + extjs pelos forms
Django + extjs pelos forms
 

Mais de Ricardo Rodrigues Nunes

Uso de Tecnologias Digitais e Abordagens da Educação On-line
Uso de Tecnologias Digitais e Abordagens da Educação On-lineUso de Tecnologias Digitais e Abordagens da Educação On-line
Uso de Tecnologias Digitais e Abordagens da Educação On-lineRicardo Rodrigues Nunes
 
Interfaces, boas práticas e como passar mensagens com clareza em Jogos Digitais
Interfaces, boas práticas e como passar mensagens com clareza em Jogos DigitaisInterfaces, boas práticas e como passar mensagens com clareza em Jogos Digitais
Interfaces, boas práticas e como passar mensagens com clareza em Jogos DigitaisRicardo Rodrigues Nunes
 
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...Ricardo Rodrigues Nunes
 
SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...
SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...
SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...Ricardo Rodrigues Nunes
 
Debate: Ciência da computação É Ciência?
Debate: Ciência da computação É Ciência?Debate: Ciência da computação É Ciência?
Debate: Ciência da computação É Ciência?Ricardo Rodrigues Nunes
 
Welcome to CERTIC - ARLAB Applied Research Laboratory
Welcome to CERTIC - ARLAB Applied Research Laboratory Welcome to CERTIC - ARLAB Applied Research Laboratory
Welcome to CERTIC - ARLAB Applied Research Laboratory Ricardo Rodrigues Nunes
 
Gamification: strategies for interaction and pedagogic assessment - at Great ...
Gamification: strategies for interaction and pedagogic assessment - at Great ...Gamification: strategies for interaction and pedagogic assessment - at Great ...
Gamification: strategies for interaction and pedagogic assessment - at Great ...Ricardo Rodrigues Nunes
 
Método Estudo de Caso para Pesquisa de Groupware na Educação
Método Estudo de Caso para Pesquisa de Groupware na EducaçãoMétodo Estudo de Caso para Pesquisa de Groupware na Educação
Método Estudo de Caso para Pesquisa de Groupware na EducaçãoRicardo Rodrigues Nunes
 
Podcasting e videocasting; partilha de documentos e apresentações;partilha de...
Podcasting e videocasting; partilha de documentos e apresentações;partilha de...Podcasting e videocasting; partilha de documentos e apresentações;partilha de...
Podcasting e videocasting; partilha de documentos e apresentações;partilha de...Ricardo Rodrigues Nunes
 
Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...
Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...
Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...Ricardo Rodrigues Nunes
 

Mais de Ricardo Rodrigues Nunes (12)

Uso de Tecnologias Digitais e Abordagens da Educação On-line
Uso de Tecnologias Digitais e Abordagens da Educação On-lineUso de Tecnologias Digitais e Abordagens da Educação On-line
Uso de Tecnologias Digitais e Abordagens da Educação On-line
 
Interfaces, boas práticas e como passar mensagens com clareza em Jogos Digitais
Interfaces, boas práticas e como passar mensagens com clareza em Jogos DigitaisInterfaces, boas práticas e como passar mensagens com clareza em Jogos Digitais
Interfaces, boas práticas e como passar mensagens com clareza em Jogos Digitais
 
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
SimProgramming: uma abordagem pedagógica motivacional para a aprendizagem de ...
 
Moodle para docentes independentes
Moodle para docentes independentesMoodle para docentes independentes
Moodle para docentes independentes
 
SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...
SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...
SimProgramming: Uma Abordagem Motivacional para a Aprendizagem de Alunos Inte...
 
Debate: Ciência da computação É Ciência?
Debate: Ciência da computação É Ciência?Debate: Ciência da computação É Ciência?
Debate: Ciência da computação É Ciência?
 
Welcome to CERTIC - ARLAB Applied Research Laboratory
Welcome to CERTIC - ARLAB Applied Research Laboratory Welcome to CERTIC - ARLAB Applied Research Laboratory
Welcome to CERTIC - ARLAB Applied Research Laboratory
 
Gamification: strategies for interaction and pedagogic assessment - at Great ...
Gamification: strategies for interaction and pedagogic assessment - at Great ...Gamification: strategies for interaction and pedagogic assessment - at Great ...
Gamification: strategies for interaction and pedagogic assessment - at Great ...
 
Remixing the American Dream
Remixing the American DreamRemixing the American Dream
Remixing the American Dream
 
Método Estudo de Caso para Pesquisa de Groupware na Educação
Método Estudo de Caso para Pesquisa de Groupware na EducaçãoMétodo Estudo de Caso para Pesquisa de Groupware na Educação
Método Estudo de Caso para Pesquisa de Groupware na Educação
 
Podcasting e videocasting; partilha de documentos e apresentações;partilha de...
Podcasting e videocasting; partilha de documentos e apresentações;partilha de...Podcasting e videocasting; partilha de documentos e apresentações;partilha de...
Podcasting e videocasting; partilha de documentos e apresentações;partilha de...
 
Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...
Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...
Pergunta-sem-Resposta: Sistema INTERVIU para a Pesquisa e o Desenvolvimento...
 

Último

A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 

Último (20)

A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 

Desenvolvimento de aplicativos para o Facebook

  • 1. Desenvolvimento de aplicativos para o Facebook Apresentação de disciplina: Desenvolvimento de Aplicações na Web Professor Hugo Paredes Jorge Lima jlima@utad.pt Ricardo Rodrigues Nunes rrnunes@utad.pt Maio/2011
  • 2. Por que desenvolver (ou não) aplicações para o Facebook? “Porque se torna muito mais fácil divulgar esta aplicação, uma vez que as pessoas estão em constante comunicação umas com as outras.” KatyTeixeira “Facebook é cada vez mais popular .” Fábio Escaleira “Porque o facebook tornou-se uma forma de publicidade quase gratuita e muito eficiente.” Miguel Araujo “um utilizador usar a aplicação e partilhar no mural, vários utilizadores aderem, ou seja, é simples aumentar a popularidade da aplicação.” Cesar Meira 2/18 Obs. Respostas dos alunos
  • 3. Audiência Global Audiência Global : 667,020,540 3/18 Fonte: checkfacebook.com
  • 4. Portugal no Facebook Fonte: checkfacebook.com
  • 5. Por onde começar? FacebookDevelopers http://developers.facebook.com/ FacebookDocumentation http://developers.facebook.com/docs/ FacebookForum http://forum.developers.facebook.net/ FacebookBlog http://developers.facebook.com/blog/ FacebookShowcase http://developers.facebook.com/showcase/ 5/18
  • 6. Tipos de Aplicações Dois tipos diferentes de aplicações Facebook: aplicação desktop aplicação do web Três maneiras diferentes de uma aplicação interagir com o Facebook: uma aplicação externa interagindo por meio de uma API remota um IFRAME dentro do próprio site utilizando a linguagem de marcação do Facebook (FBML) 6/18
  • 7. Onde vender as aplicações que desenvolvi? Sitepointmarket http://sitepointmarket.com/ Appbid http://www.appbid.com/ 7/18
  • 8. A nossa 1ª aplicação http://developers.facebook.com 8/18
  • 9.  MyApps, Login [+SetUpNewApp]  9/18
  • 10. OOPS! O Facebook é muito chato e está sempre a mudar. 10/18
  • 11. Projecto PLAYER 11/18 Login = App ID + App Secret
  • 12. 12/18
  • 13. <!doctypehtml> <html> <head> <title>Exemplo de login do Facebook</title> <script type="text/javascript"> FB.login( function(response) { if(response.session) { if(response.perms) { // utilizador estáautenticado e deu permissões. // perms = CSV (lista de permissoes separada por virgulas) <?phpecho $_REQUEST['access_token'];?> } else { // utilizador autenticado mas não deu permissões } } else { // userisnotloggedin } }, {perms:'user_groups'} //pedir para ler os grupos de um utilizador ); </script> </head> 13/18
  • 14. if($me) { <ahref=“echo$logoutUrl;<imgsrc=http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif></a> } else { <ahref=“echo$loginUrl;“<imgsrc=http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif></a> //Sacar informação sobre os grupos $ch=curl_init(); curl_setopt($ch,CURLOPT_URL, https://graph.facebook.com/".$session['uid']."/groups?scope=user_groups&access_token=".$session['access_token']); curl_setopt($ch,CURLOPT_HEADER,0); curl_exec ($ch ); curl_close($ch); Outras permissões: user_about_me ,user_activities, user_birthday ,birthday_dateproperty,user_checkinsuser_education_history,user_events, user_hometown , user_interests, user_likes,user_location, user_notes, user_online_presence ,user_photo_video_tags,user_photos , user_relationships, user_relationship_details,user_religion_politics ,user_status, user_videos,user_website, user_work_history, email , read_friendlists, read_insights, read_mailbox,read_requests, read_stream, xmpp_login, ads_management 14/18
  • 15. JSON Quais são os dados publicamente acessíveis? Array ( (...) [83] => { "id":"100001097790346", "name":"Bruno Vieira", "first_name":"Bruno", "last_name":"Vieira", "link":"http:www.facebook.compeopleBruno-Vieira100001097790346", "gender":"male", "locale":"pt_PT“ } ) Podem converter para um objecto, ou para um array, com json_decode Array ( [0] => (...) [1] => Array ( [0] => 100001097790346 [1] => Bruno Vieira [2] => 175 ) ) 15/18
  • 16. Graph API https://graph.facebook.com/331218348435/attending?access_token=.... { "data": [ { "name": "SergioDagach", "id": "707855857", "rsvp_status": "attending" }, { "name": "Tama Taylor", "id": "567460175", "rsvp_status": "attending" }, { "name": "BrianThornton", "id": "1695410038", "rsvp_status": "attending" },(…) ] } 16/18
  • 17. curl_multi! :D //Temos umarray de IDs de pessoas que não especificaram o país, tirado da BD //Vamos construir umarray de URLs (FACEBOOK GRAPH API) para passar ao cURL foreach($bdArrayas$k=>$bd)  $urlArray[]="http://graph.facebook.com/$bd"; //Temos de construir umarray de handles / file descriptors / sockets (MULTITHREADED)  foreach($urlArrayas$k=>$u) {               $h=curl_init(); curl_setopt($h,CURLOPT_URL,$u); curl_setopt($h,CURLOPT_HEADER,0); curl_setopt($h,CURLOPT_RETURNTRANSFER,1); $handleArray[]=$h; } $mh=curl_multi_init(); foreach($handleArrayas$k=>$h)curl_multi_add_handle($mh,$h); do   curl_multi_exec($mh,$running); while($running>0); //Espera que todos acabem de correr //Array preenchido com resultados das chamadas à Graph API, em JSON foreach($handleArrayas$k=>$h)  $dataArray[$k]=curl_multi_getcontent($h); foreach($handleArrayas$k=>$h)  curl_multi_remove_handle($mh,$h);  curl_multi_close($mh);          //Inferir país a partir da linguagem foreach ($handleArrayas$k=>$d) { if(strlen($d)>0) $tempArray=json_decode($d,true); if(($tempArray['locale']=="pt_PT")$idArray[]=array($tempArray['id'],$tempArray['name'],157);    }  //Array com países inferidospara quem não especificou um país foreach($idArray as $k=>$i){ //corrigir a BD } 17/18
  • 19. Desenvolvimento de aplicativos para o Facebook Apresentação de disciplina: Desenvolvimento de Aplicações na Web Professor Hugo Paredes Jorge Lima jlima@utad.pt Ricardo Rodrigues Nunes rrnunes@utad.pt Maio/2011