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 !
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="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy> Ejemplo de archivo crossdomain.xml
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 )
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'; ?>
28. Archivo de eliminación de Usuario: <?php @ob_end_flush(); @ob_start("ob_gzhandler"); @ob_implicit_flush(0); @error_reporting(E_ALL & ~E_NOTICE); @mb_internal_encoding("UTF-8"); @mb_http_output("UTF-8"); @ini_set("default_charset","UTF-8"); // this defines some of your basic setup include_once 'config.php'; include_once 'db/db.php'; $db->sql_query("SET NAMES UTF8"); if(isset($_POST["fb_sig_user"])) { $user=$_POST["fb_sig_user"]; $db->sql_query("DELETE FROM users WHERE facebookid=$user"); } @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("UTF-8"); @mb_http_output("UTF-8"); @ini_set("default_charset","UTF-8"); Activar el uso de UTF-8 en MySQL (Lo primero que debes hacer apenas una vez establecida la conexión) $db->sql_query("SET NAMES UTF8"); Activar el uso de Sesiones (para poder pasar información entre llamadas de un link a otro) @ini_set("session.use_trans_sid","0"); @session_start();
32. $PATHS=array(); $opt=ProcessParameters(); switch($opt) { case "urlamigable1": app_funcion1(); break; case "urlamigable2": app_funcion2(); break; case "": app_main(); break; default: echo "<fb:redirect url=amp;quot;{$appurl}amp;quot; />"; die(); }
33. Como crear un “Profile BOX”: <?php function app_setinfobox($user, $htmlw="", $htmln="") { // narrow : 184 * 250 // wide : 380 * X try { $result=$facebook->api_client->profile_setFBML(NULL, $user, "<fb:wide>".$htmlw."</fb:wide>"."<fb:narrow>".$htmln."</fb:narrow>", NULL, "", "<fb:narrow>".$htmln."</fb:narrow>"); } catch (Exception $e) { } } ?>
34. Como publicar contenido en el News Feed del usuario y sus amigos utilizando Javascript: <script type='text/javascript'> var attachment = {"name":"<Nombre de tu Aplicación>","href":"{$appurl}", "caption":"{*actor*} <mensaje>.", "description":"<texto que quieres publicar>", "media":[{"type":"image", "src":"<url de la imagen>","href":"{$appurl}"}] }; var actionLinks = [{ "text": "Texto de Action Link", "href": "{$appurl}"}]; Facebook.streamPublish("",attachment,actionLinks,null,"<titulo para escribir contenido>"); </script>
35. Como publicar en el News Feed utilizando FBML: En la aplicación se deberá mostrar el siguiente contenido: <form fbtype="feedStory" id="publishformdata" action="<url del form>"> <input type="hidden" name="<variable>" value="<valor>"/> <input type="submit" label="Presiona aquí para continuar" /> </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="<titulo del mensaje>"; $mensaje="<cuerpo del mensaje>"; $images=array( array("src"=>"<url de la imagen>","href"=>"{$appurl}") ); $tokens=array( "images"=>$images, "titulo"=>$title, "mensaje"=>$mensaje ); $feed = array('template_data' => $tokens, 'template_id' => $template ); $publish = array('method'=> 'feedStory', 'content' => array( 'feed' => $feed, 'next' => "{$appurl}")); echo json_encode($publish); ?>