Desenvolvimento de aplicativos para o Facebook<br />Apresentação de disciplina:<br />Desenvolvimento de Aplicações na Web<...
Por que desenvolver (ou não) aplicações para o Facebook?<br />“Porque se torna muito mais fácil divulgar esta aplicação, u...
Audiência Global<br />Audiência Global : 667,020,540<br />3/18<br />Fonte: checkfacebook.com<br />
Portugal no Facebook<br />Fonte: checkfacebook.com<br />
Por onde começar? <br />FacebookDevelopers<br />http://developers.facebook.com/<br />FacebookDocumentation<br />http://dev...
Tipos de Aplicações<br />Dois tipos diferentes de aplicações Facebook:<br />aplicação desktop<br />aplicação do web<br />T...
Onde vender as aplicações que desenvolvi?<br />Sitepointmarket<br />http://sitepointmarket.com/<br />Appbid<br />http://ww...
A nossa 1ª aplicação<br />http://developers.facebook.com<br />8/18<br />
 MyApps, Login<br />[+SetUpNewApp] <br />9/18<br />
OOPS!<br />O Facebook é muito chato e está sempre a mudar.<br />10/18<br />
Projecto PLAYER<br />11/18<br />Login = App ID + App Secret<br />
12/18<br />
<!doctypehtml><br /><html><br /><head><br /><title>Exemplo de login do Facebook</title><br /><script type="text/javascript...
if($me)<br />{<br />	<ahref=“echo$logoutUrl;<imgsrc=http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif></a><br />...
JSON<br />Quais são os dados publicamente acessíveis?<br />Array<br />(<br />(...)<br />	[83] => <br />	{<br />		"id":"100...
Graph API<br />https://graph.facebook.com/331218348435/attending?access_token=....<br />{<br />   "data": [<br />      {<b...
curl_multi! :D<br />//Temos umarray de IDs de pessoas que não especificaram o país, tirado da BD<br />//Vamos construir um...
X/FBML<br />18/18<br />
Desenvolvimento de aplicativos para o Facebook<br />Apresentação de disciplina:<br />Desenvolvimento de Aplicações na Web<...
Upcoming SlideShare
Loading in …5
×

Desenvolvimento de aplicativos para o Facebook

17,340 views

Published on

Apresentação sobre desenvolvimento de aplicativos para o Facebook na aula de Desenvolvimento de Aplicações na Web na Universidade Trás-os-Montes e Alto Douro (UTAD).

Published in: Education
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
17,340
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
247
Comments
2
Likes
5
Embeds 0
No embeds

No notes for slide

Desenvolvimento de aplicativos para o Facebook

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

×