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

tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1Michycau1
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptxSEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptxCompartilhadoFACSUFA
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
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
 
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
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
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
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
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
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfIvoneSantos45
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
caderno de matematica com as atividade e refrnciais de matematica ara o fu...
caderno de matematica  com  as atividade  e refrnciais de matematica ara o fu...caderno de matematica  com  as atividade  e refrnciais de matematica ara o fu...
caderno de matematica com as atividade e refrnciais de matematica ara o fu...EvandroAlvesAlves1
 
Transformações isométricas.pptx Geometria
Transformações isométricas.pptx GeometriaTransformações isométricas.pptx Geometria
Transformações isométricas.pptx Geometriajucelio7
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 

Último (20)

tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptxSEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
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
 
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?
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
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
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
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
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdf
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
caderno de matematica com as atividade e refrnciais de matematica ara o fu...
caderno de matematica  com  as atividade  e refrnciais de matematica ara o fu...caderno de matematica  com  as atividade  e refrnciais de matematica ara o fu...
caderno de matematica com as atividade e refrnciais de matematica ara o fu...
 
Transformações isométricas.pptx Geometria
Transformações isométricas.pptx GeometriaTransformações isométricas.pptx Geometria
Transformações isométricas.pptx Geometria
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 

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