SlideShare ist ein Scribd-Unternehmen logo
1 von 42
 
 
Desarrollando una aplicación facebook Paso a Paso Bruno Kámiche Inventarte.net Lima – Perú [email_address]
PASOS PREVIOS ANTES DE CREAR UNA APLICACIÓN
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 !
DEFINE LA ARQUITECTURA QUE UTILIZARÁS
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 )
Base de Datos Servidor de Aplicación Servidor de Contenido Estático
<?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
CREAR LA APLICACIÓN EN FACEBOOK
 
 
 
 
 
 
 
 
 
 
 
 
DIFERENCIAS ENTRE UNA APLICACIÓN  FBML y IFRAME
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 )
DESARROLLA TU APLICACIÓN ¡MANOS A LA OBRA!
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'; ?>
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(); ?>
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(); ?>
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.
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();
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]); }
$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=amp;quot;{$appurl}amp;quot; />&quot;; die(); }
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) { } } ?>
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>
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>
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); ?>
Como utilizar el Editor de Templates
 
 
 
 
¡Gracias! Bruno Kámiche Inventarte.net Lima – Perú [email_address]

Weitere ähnliche Inhalte

Was ist angesagt?

Wordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaWordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaDarío BF
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDarío BF
 
Trabajo de capasitacion
Trabajo de capasitacionTrabajo de capasitacion
Trabajo de capasitacioncelisz
 
cargar un website en la red social
cargar un website en la red socialcargar un website en la red social
cargar un website en la red socialJonathan Chuquilla
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuelacarmen51
 
Mi primera pagina web en html con bloc de notas
Mi primera pagina web en html con bloc de notasMi primera pagina web en html con bloc de notas
Mi primera pagina web en html con bloc de notasJessi De Jesus Torres
 
vAplicación parte 1
vAplicación parte 1vAplicación parte 1
vAplicación parte 1yanburbano
 
Ejemplo de mostrar datos (Sin paginación)
Ejemplo de mostrar datos (Sin paginación)Ejemplo de mostrar datos (Sin paginación)
Ejemplo de mostrar datos (Sin paginación)yanburbano
 
Buenas prácticas en el desarrollo con WordPress - #WCSantander
Buenas prácticas en el desarrollo con WordPress - #WCSantanderBuenas prácticas en el desarrollo con WordPress - #WCSantander
Buenas prácticas en el desarrollo con WordPress - #WCSantanderDarío BF
 
Crear una pagina web con bloc de notas
Crear una pagina web con bloc de notasCrear una pagina web con bloc de notas
Crear una pagina web con bloc de notasSandra Meza
 
Html actividades 1
Html actividades  1Html actividades  1
Html actividades 1Vicky BarMen
 
Mejores plugins wp 2014
Mejores plugins wp 2014Mejores plugins wp 2014
Mejores plugins wp 2014Pablo Cortés
 
Ejercicios htm lcompletos
Ejercicios htm lcompletosEjercicios htm lcompletos
Ejercicios htm lcompletosLuis Armando
 
Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017Tomas Sierra
 

Was ist angesagt? (20)

Wordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaWordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp Barcelona
 
Informe
InformeInforme
Informe
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
 
Trabajo de capasitacion
Trabajo de capasitacionTrabajo de capasitacion
Trabajo de capasitacion
 
cargar un website en la red social
cargar un website en la red socialcargar un website en la red social
cargar un website en la red social
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuela
 
Mi primera pagina web en html con bloc de notas
Mi primera pagina web en html con bloc de notasMi primera pagina web en html con bloc de notas
Mi primera pagina web en html con bloc de notas
 
vAplicación parte 1
vAplicación parte 1vAplicación parte 1
vAplicación parte 1
 
Ejemplo de mostrar datos (Sin paginación)
Ejemplo de mostrar datos (Sin paginación)Ejemplo de mostrar datos (Sin paginación)
Ejemplo de mostrar datos (Sin paginación)
 
Buenas prácticas en el desarrollo con WordPress - #WCSantander
Buenas prácticas en el desarrollo con WordPress - #WCSantanderBuenas prácticas en el desarrollo con WordPress - #WCSantander
Buenas prácticas en el desarrollo con WordPress - #WCSantander
 
Crear una pagina web con bloc de notas
Crear una pagina web con bloc de notasCrear una pagina web con bloc de notas
Crear una pagina web con bloc de notas
 
Buscadores internet
Buscadores internetBuscadores internet
Buscadores internet
 
Html actividades 1
Html actividades  1Html actividades  1
Html actividades 1
 
Pasos de instacion joomla
Pasos de instacion joomlaPasos de instacion joomla
Pasos de instacion joomla
 
Mejores plugins wp 2014
Mejores plugins wp 2014Mejores plugins wp 2014
Mejores plugins wp 2014
 
Ejercicios htm lcompletos
Ejercicios htm lcompletosEjercicios htm lcompletos
Ejercicios htm lcompletos
 
Reporte 2
Reporte 2Reporte 2
Reporte 2
 
002
002002
002
 
Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017
 
P no 2
P no 2P no 2
P no 2
 

Andere mochten auch

Introduction to facebook javascript sdk
Introduction to facebook javascript sdk Introduction to facebook javascript sdk
Introduction to facebook javascript sdk Yi-Fan Chu
 
Facebook Python SDK - Introduction
Facebook Python SDK - IntroductionFacebook Python SDK - Introduction
Facebook Python SDK - IntroductionColin Su
 
Facebook广告API 101
Facebook广告API 101Facebook广告API 101
Facebook广告API 101Yu LI
 
Workshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDKWorkshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDKDimitar Danailov
 
Introduction to Facebook JavaScript & Python SDK
Introduction to Facebook JavaScript & Python SDKIntroduction to Facebook JavaScript & Python SDK
Introduction to Facebook JavaScript & Python SDKColin Su
 
Introduction to Facebook Python API
Introduction to Facebook Python APIIntroduction to Facebook Python API
Introduction to Facebook Python APIColin Su
 

Andere mochten auch (6)

Introduction to facebook javascript sdk
Introduction to facebook javascript sdk Introduction to facebook javascript sdk
Introduction to facebook javascript sdk
 
Facebook Python SDK - Introduction
Facebook Python SDK - IntroductionFacebook Python SDK - Introduction
Facebook Python SDK - Introduction
 
Facebook广告API 101
Facebook广告API 101Facebook广告API 101
Facebook广告API 101
 
Workshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDKWorkshop : Facebook JavaScript SDK
Workshop : Facebook JavaScript SDK
 
Introduction to Facebook JavaScript & Python SDK
Introduction to Facebook JavaScript & Python SDKIntroduction to Facebook JavaScript & Python SDK
Introduction to Facebook JavaScript & Python SDK
 
Introduction to Facebook Python API
Introduction to Facebook Python APIIntroduction to Facebook Python API
Introduction to Facebook Python API
 

Ähnlich wie Step by step developing with Facebook PHP API by Bruno Kamiche

Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Raul Fraile
 
Html Y Javascript
Html Y JavascriptHtml Y Javascript
Html Y Javascriptoswchavez
 
Html Y Javascript
Html Y JavascriptHtml Y Javascript
Html Y Javascriptoswchavez
 
Introducción al desarrollo web
Introducción al desarrollo webIntroducción al desarrollo web
Introducción al desarrollo webMarcos Vanetta
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetEsteban Soraire
 
Truquitos html
Truquitos htmlTruquitos html
Truquitos htmlpunkandemo
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Andrés Iturralde
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008Mitusin
 
Curso Formacion Apache Solr
Curso Formacion Apache SolrCurso Formacion Apache Solr
Curso Formacion Apache SolrEmpathyBroker
 
Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetMoisés Cid Deza
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET Universidad
 

Ähnlich wie Step by step developing with Facebook PHP API by Bruno Kamiche (20)

Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
 
PHP
PHPPHP
PHP
 
Html Y Javascript
Html Y JavascriptHtml Y Javascript
Html Y Javascript
 
Html Y Javascript
Html Y JavascriptHtml Y Javascript
Html Y Javascript
 
PHP
PHPPHP
PHP
 
Introducción al desarrollo web
Introducción al desarrollo webIntroducción al desarrollo web
Introducción al desarrollo web
 
Dce2 Introduccion Asp.Net
Dce2 Introduccion Asp.NetDce2 Introduccion Asp.Net
Dce2 Introduccion Asp.Net
 
Truquitos html
Truquitos htmlTruquitos html
Truquitos html
 
Trucos Html
Trucos HtmlTrucos Html
Trucos Html
 
Trucos html
Trucos htmlTrucos html
Trucos html
 
Encuentro Linux 2011
Encuentro Linux 2011Encuentro Linux 2011
Encuentro Linux 2011
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
 
ASP
ASPASP
ASP
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008
 
Curso Formacion Apache Solr
Curso Formacion Apache SolrCurso Formacion Apache Solr
Curso Formacion Apache Solr
 
Javascript
JavascriptJavascript
Javascript
 
Js
JsJs
Js
 
Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.Net
 
DiseñO Pagina Web
DiseñO Pagina WebDiseñO Pagina Web
DiseñO Pagina Web
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET
 

Mehr von Facebook Developer Garage Guayaquil

Mehr von Facebook Developer Garage Guayaquil (7)

FbFund, Facebook App Verification Program an Benefits by Luis Loaiza
FbFund, Facebook App Verification Program an Benefits by Luis LoaizaFbFund, Facebook App Verification Program an Benefits by Luis Loaiza
FbFund, Facebook App Verification Program an Benefits by Luis Loaiza
 
What's New From Facebook by Marco Calderon and Andres Vargas
What's New From Facebook by Marco Calderon and Andres VargasWhat's New From Facebook by Marco Calderon and Andres Vargas
What's New From Facebook by Marco Calderon and Andres Vargas
 
Politics within Facebook in Ecuador by Adrian Bajaña
Politics within Facebook in Ecuador by Adrian BajañaPolitics within Facebook in Ecuador by Adrian Bajaña
Politics within Facebook in Ecuador by Adrian Bajaña
 
Facebook Present & Future by Nick Gonzalez
Facebook Present & Future by Nick GonzalezFacebook Present & Future by Nick Gonzalez
Facebook Present & Future by Nick Gonzalez
 
Monetization for Facebook Apps by Alfredo Velasco
Monetization for Facebook Apps by Alfredo VelascoMonetization for Facebook Apps by Alfredo Velasco
Monetization for Facebook Apps by Alfredo Velasco
 
Introduction to Facebook Platform by Andres Granda
Introduction to Facebook Platform by Andres GrandaIntroduction to Facebook Platform by Andres Granda
Introduction to Facebook Platform by Andres Granda
 
Surviving & Thriving on Facebook by Nick Gonzalez
Surviving & Thriving on Facebook by Nick GonzalezSurviving & Thriving on Facebook by Nick Gonzalez
Surviving & Thriving on Facebook by Nick Gonzalez
 

Kürzlich hochgeladen

Uso correcto del silbato y formaciones.pdf
Uso correcto del silbato y formaciones.pdfUso correcto del silbato y formaciones.pdf
Uso correcto del silbato y formaciones.pdfzrzpwy2c5g
 
organizador visula diversidad linguistica y etnica.docx
organizador visula diversidad linguistica y etnica.docxorganizador visula diversidad linguistica y etnica.docx
organizador visula diversidad linguistica y etnica.docxShirleyJaneFrancoSar
 
4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf
4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf
4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdfMiNeyi1
 
Virginia-Satir (1).pptx Autoestima y desarrollo personal
Virginia-Satir (1).pptx Autoestima y desarrollo personalVirginia-Satir (1).pptx Autoestima y desarrollo personal
Virginia-Satir (1).pptx Autoestima y desarrollo personalCHUPACABRA6
 
El enamoramiento es una fuente de inspiración.pdf
El enamoramiento es una fuente de inspiración.pdfEl enamoramiento es una fuente de inspiración.pdf
El enamoramiento es una fuente de inspiración.pdfEdward Chero Valdivieso
 
Revista Actualidad Espiritista N°33.pdf
Revista  Actualidad Espiritista N°33.pdfRevista  Actualidad Espiritista N°33.pdf
Revista Actualidad Espiritista N°33.pdfPatricia487970
 
CURSO BÁSICO ÁNGELES Y ÁRCANGELES.pdf
CURSO  BÁSICO  ÁNGELES Y  ÁRCANGELES.pdfCURSO  BÁSICO  ÁNGELES Y  ÁRCANGELES.pdf
CURSO BÁSICO ÁNGELES Y ÁRCANGELES.pdfestudiosespiritasdep
 
ABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptx
ABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptxABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptx
ABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptxXavierCrdenasGarca
 
Ejercicios de Lengua que deberías prácticar para el uso de comas
Ejercicios de Lengua que deberías prácticar para el uso de comasEjercicios de Lengua que deberías prácticar para el uso de comas
Ejercicios de Lengua que deberías prácticar para el uso de comasmichica1
 
CATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOS
CATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOSCATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOS
CATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOSFredyMolina26
 
el desafío del amor .pdf el desafío del amor
el desafío del amor .pdf el desafío del amorel desafío del amor .pdf el desafío del amor
el desafío del amor .pdf el desafío del amorrtvmfd5s46
 
LAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docx
LAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docxLAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docx
LAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docxRafael Reverte Pérez
 
ESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdf
ESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdfESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdf
ESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdfyhostend
 
DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...
DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...
DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...FernandoJavierGarcia11
 

Kürzlich hochgeladen (14)

Uso correcto del silbato y formaciones.pdf
Uso correcto del silbato y formaciones.pdfUso correcto del silbato y formaciones.pdf
Uso correcto del silbato y formaciones.pdf
 
organizador visula diversidad linguistica y etnica.docx
organizador visula diversidad linguistica y etnica.docxorganizador visula diversidad linguistica y etnica.docx
organizador visula diversidad linguistica y etnica.docx
 
4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf
4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf
4.- COMO HACER QUE TE PASEN COSAS BUENAS.pdf
 
Virginia-Satir (1).pptx Autoestima y desarrollo personal
Virginia-Satir (1).pptx Autoestima y desarrollo personalVirginia-Satir (1).pptx Autoestima y desarrollo personal
Virginia-Satir (1).pptx Autoestima y desarrollo personal
 
El enamoramiento es una fuente de inspiración.pdf
El enamoramiento es una fuente de inspiración.pdfEl enamoramiento es una fuente de inspiración.pdf
El enamoramiento es una fuente de inspiración.pdf
 
Revista Actualidad Espiritista N°33.pdf
Revista  Actualidad Espiritista N°33.pdfRevista  Actualidad Espiritista N°33.pdf
Revista Actualidad Espiritista N°33.pdf
 
CURSO BÁSICO ÁNGELES Y ÁRCANGELES.pdf
CURSO  BÁSICO  ÁNGELES Y  ÁRCANGELES.pdfCURSO  BÁSICO  ÁNGELES Y  ÁRCANGELES.pdf
CURSO BÁSICO ÁNGELES Y ÁRCANGELES.pdf
 
ABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptx
ABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptxABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptx
ABRAHAM HAROLD MASLOW 1908-1970 HISTORIA.pptx
 
Ejercicios de Lengua que deberías prácticar para el uso de comas
Ejercicios de Lengua que deberías prácticar para el uso de comasEjercicios de Lengua que deberías prácticar para el uso de comas
Ejercicios de Lengua que deberías prácticar para el uso de comas
 
CATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOS
CATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOSCATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOS
CATEQUESIS SOBRE LA FE CATÓLICA PARA ADULTOS
 
el desafío del amor .pdf el desafío del amor
el desafío del amor .pdf el desafío del amorel desafío del amor .pdf el desafío del amor
el desafío del amor .pdf el desafío del amor
 
LAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docx
LAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docxLAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docx
LAS CIRCULARES Y MIS COMUNICADOS de los Maestres COMENTADOS.docx
 
ESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdf
ESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdfESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdf
ESCATOLOGÍA: LA FUERZA Y ESPERANZA DEL VERDADERO PUEBLO DE YHWH.pdf
 
DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...
DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...
DINAMICA VEAMOS TEMA 2 Padres y Padrinos, facilitadores del proceso de crecim...
 

Step by step developing with Facebook PHP API by Bruno Kamiche

  • 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=amp;quot;{$appurl}amp;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]