Step by step developing  with Facebook PHP API by Bruno Kamiche
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,740
On Slideshare
4,710
From Embeds
30
Number of Embeds
2

Actions

Shares
Downloads
101
Comments
0
Likes
2

Embeds 30

http://www.slideshare.net 29
http://static.slidesharecdn.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.  
  • 2.  
  • 3. Desarrollando una aplicación facebook Paso a Paso Bruno Kámiche Inventarte.net Lima – Perú [email_address]
  • 4. PASOS PREVIOS ANTES DE CREAR UNA APLICACIÓN
  • 5. Pasos Previos: - Tener una idea clara y por escrito del objetivo de la aplicación - Definir la secuencia de pantallas y operaciones que aparecerán en la aplicación - Definir la estructura de datos que dará soporte a tu aplicación ¡ ESTABLECE TU ROADMAP !
  • 6. DEFINE LA ARQUITECTURA QUE UTILIZARÁS
  • 7. Para que el funcionamiento de la aplicación sea óptimo se deberán utilizar servidores especializados: - Servidores de procesos (WebServer + PHP) - Servidor de Base de Datos - Servidor de contenido estático Si tu aplicación estará basada en flash y lo servirás desde un servidor diferente al de PHP recuerda crear los archivos de políticas de seguridad ( crossdomain.xml )
  • 8. Base de Datos Servidor de Aplicación Servidor de Contenido Estático
  • 9. <?xml version=&quot;1.0&quot;?> <!DOCTYPE cross-domain-policy SYSTEM &quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&quot;> <cross-domain-policy> <allow-access-from domain=&quot;*&quot; /> </cross-domain-policy> Ejemplo de archivo crossdomain.xml
  • 10. CREAR LA APLICACIÓN EN FACEBOOK
  • 11.  
  • 12.  
  • 13.  
  • 14.  
  • 15.  
  • 16.  
  • 17.  
  • 18.  
  • 19.  
  • 20.  
  • 21.  
  • 22.  
  • 23. DIFERENCIAS ENTRE UNA APLICACIÓN FBML y IFRAME
  • 24. Aplicaciones FBML: - Puedes hacer una aplicación nueva mucho más rapido - Carga más rapido - Permite un acceso mas simple a los servicios de Facebook - Puedes utilizar URLs amigables en tu aplicación Aplicaciones IFRAME: - Son más fáciles de integrar a facebook (en sitios previamente existentes) - La interacción con el browser es más rápida - Te permite el uso de Javascript, HTML y CSS sin restricciones - Funcionan mejor si requieres mucho uso de AJAX - Permite el empleo de herramientas de Debug de HTML y Javascript - Puedes utilizar librerias de Javascript existentes ( Jquery )
  • 25. DESARROLLA TU APLICACIÓN ¡MANOS A LA OBRA!
  • 26. Utiliza un archivo de configuración: Ejm: <?php $db_ip = '<ip o nombre de tu servidor>'; $db_user = '<nombre de usuario>'; $db_pass = '<password>'; $db_name = '<nombre de la BD>'; $api_key = '<api key>'; $secret = '<secret key>'; $memcachedserver = '<ip o nombre de tu servidor memcached>'; $static='http://static.mydomain.com'; ?>
  • 27. Archivo de autorización: <?php @ob_end_flush(); @ob_start(&quot;ob_gzhandler&quot;); @ob_implicit_flush(0); @error_reporting(E_ALL & ~E_NOTICE); @mb_internal_encoding(&quot;UTF-8&quot;); @mb_http_output(&quot;UTF-8&quot;); @ini_set(&quot;default_charset&quot;,&quot;UTF-8&quot;); include_once 'config.php'; include_once 'db/db.php'; $db->sql_query(&quot;SET NAMES UTF8&quot;); @session_start(); // the facebook client library require_once('client/facebook.php'); require_once('mainfile.php'); if(isset($_POST[&quot;fb_sig_user&quot;])) $user=$_POST[&quot;fb_sig_user&quot;]; else die(); $facebook=new Facebook($api_key, $secret); $db->sql_query(&quot;INSERT INTO users(facebookid, datetime) VALUES($user, UNIX_TIMESTAMP(NOW()))&quot;); @ob_end_flush(); ?>
  • 28. Archivo de eliminación de Usuario: <?php @ob_end_flush(); @ob_start(&quot;ob_gzhandler&quot;); @ob_implicit_flush(0); @error_reporting(E_ALL & ~E_NOTICE); @mb_internal_encoding(&quot;UTF-8&quot;); @mb_http_output(&quot;UTF-8&quot;); @ini_set(&quot;default_charset&quot;,&quot;UTF-8&quot;); // this defines some of your basic setup include_once 'config.php'; include_once 'db/db.php'; $db->sql_query(&quot;SET NAMES UTF8&quot;); if(isset($_POST[&quot;fb_sig_user&quot;])) { $user=$_POST[&quot;fb_sig_user&quot;]; $db->sql_query(&quot;DELETE FROM users WHERE facebookid=$user&quot;); } @ob_end_flush(); ?>
  • 29. Puntos a tomar en cuenta: - Asegúrate de utilizar UTF-8 tanto en la base de datos como en el programa. - Utiliza memcached para mantener datos en memoria y evitar consultas a la base de datos (http://www.danga.com/memcached/) - Si tu aplicación es de tipo IFRAME habilita el uso de sesiones para poder enviar datos. - Cuando sea la primera vez que el usuario utiliza tu aplicación debes generar un “profile box” con un contenido default o en blanco.
  • 30. Activar el uso de UTF-8 en PHP: @mb_internal_encoding(&quot;UTF-8&quot;); @mb_http_output(&quot;UTF-8&quot;); @ini_set(&quot;default_charset&quot;,&quot;UTF-8&quot;); Activar el uso de UTF-8 en MySQL (Lo primero que debes hacer apenas una vez establecida la conexión) $db->sql_query(&quot;SET NAMES UTF8&quot;); Activar el uso de Sesiones (para poder pasar información entre llamadas de un link a otro) @ini_set(&quot;session.use_trans_sid&quot;,&quot;0&quot;); @session_start();
  • 31. Como parsear URLs amigables : function ProcessParameters() { global $PATHS; $_SERVER[&quot;PATH_INFO&quot;]=$URL=$_SERVER[&quot;REQUEST_URI&quot;]; $PARAMSTR=&quot;&quot;; $p=strpos($URL,&quot;?&quot;); if($p!==false) { $_SERVER[&quot;QUERY_STRING&quot;]=$PARAMSTR=substr($URL,$p+1); $_SERVER[&quot;PATH_INFO&quot;]=$URL=substr($URL,0,$p); } if(substr($URL,0,1)==&quot;/&quot;) $URL=substr($URL,1); if(substr($URL,-1)==&quot;/&quot;) $URL=substr($URL,0,strlen($URL)-1); $NPATHS=sizeof($PATHS=split(&quot;/&quot;, $URL)); $NPARAMS=sizeof($PARAMS=split(&quot;&&quot;,$PARAMSTR)); for($nx=0;$nx<$NPARAMS;$nx++) { $param=split(&quot;=&quot;,$PARAMS[$nx]); $param[0]=str_replace(&quot;.&quot;,&quot;_&quot;,$param[0]); if(isset($param[1])) $_GET[$param[0]]=htmlspecialchars_decode(urldecode($param[1])); else $_GET[$param[0]]=&quot;&quot;; } return($PATHS[0]); }
  • 32. $PATHS=array(); $opt=ProcessParameters(); switch($opt) { case &quot;urlamigable1&quot;: app_funcion1(); break; case &quot;urlamigable2&quot;: app_funcion2(); break; case &quot;&quot;: app_main(); break; default: echo &quot;<fb:redirect url=&quot;{$appurl}&quot; />&quot;; die(); }
  • 33. Como crear un “Profile BOX”: <?php function app_setinfobox($user, $htmlw=&quot;&quot;, $htmln=&quot;&quot;) { // narrow : 184 * 250 // wide : 380 * X try { $result=$facebook->api_client->profile_setFBML(NULL, $user, &quot;<fb:wide>&quot;.$htmlw.&quot;</fb:wide>&quot;.&quot;<fb:narrow>&quot;.$htmln.&quot;</fb:narrow>&quot;, NULL, &quot;&quot;, &quot;<fb:narrow>&quot;.$htmln.&quot;</fb:narrow>&quot;); } catch (Exception $e) { } } ?>
  • 34. Como publicar contenido en el News Feed del usuario y sus amigos utilizando Javascript: <script type='text/javascript'> var attachment = {&quot;name&quot;:&quot;<Nombre de tu Aplicación>&quot;,&quot;href&quot;:&quot;{$appurl}&quot;, &quot;caption&quot;:&quot;{*actor*} <mensaje>.&quot;, &quot;description&quot;:&quot;<texto que quieres publicar>&quot;, &quot;media&quot;:[{&quot;type&quot;:&quot;image&quot;, &quot;src&quot;:&quot;<url de la imagen>&quot;,&quot;href&quot;:&quot;{$appurl}&quot;}] }; var actionLinks = [{ &quot;text&quot;: &quot;Texto de Action Link&quot;, &quot;href&quot;: &quot;{$appurl}&quot;}]; Facebook.streamPublish(&quot;&quot;,attachment,actionLinks,null,&quot;<titulo para escribir contenido>&quot;); </script>
  • 35. Como publicar en el News Feed utilizando FBML: En la aplicación se deberá mostrar el siguiente contenido: <form fbtype=&quot;feedStory&quot; id=&quot;publishformdata&quot; action=&quot;<url del form>&quot;> <input type=&quot;hidden&quot; name=&quot;<variable>&quot; value=&quot;<valor>&quot;/> <input type=&quot;submit&quot; label=&quot;Presiona aquí para continuar&quot; /> </form>
  • 36. Programa para Procesar el Feed Form: <?php include(“config.php”); // Recibir y validar los parametros en $_POST $template=<id del template definido>; // *titulo* *mensaje* $title=&quot;<titulo del mensaje>&quot;; $mensaje=&quot;<cuerpo del mensaje>&quot;; $images=array( array(&quot;src&quot;=>&quot;<url de la imagen>&quot;,&quot;href&quot;=>&quot;{$appurl}&quot;) ); $tokens=array( &quot;images&quot;=>$images, &quot;titulo&quot;=>$title, &quot;mensaje&quot;=>$mensaje ); $feed = array('template_data' => $tokens, 'template_id' => $template ); $publish = array('method'=> 'feedStory', 'content' => array( 'feed' => $feed, 'next' => &quot;{$appurl}&quot;)); echo json_encode($publish); ?>
  • 37. Como utilizar el Editor de Templates
  • 38.  
  • 39.  
  • 40.  
  • 41.  
  • 42. ¡Gracias! Bruno Kámiche Inventarte.net Lima – Perú [email_address]