¿Quieres registrarte?

Crear aplicación "Hello World" en Facebook con PHP

Por: psycho-vnz
24 de Mayo del 2009
10,278 visitas

En estos días comencé a probar la API de Facebook y me anime a crear este tip que consiste en crear una aplicación que muestra un "Hello World" en Facebook utilizando PHP.

Para poder crear aplicaciones en Facebook necesitamos estar registrados en la comunidad, ya registrados nos unimos al grupo de developers. Al entrar al grupo nos va a preguntar si permitimos que acceda a nuestro perfil como cuando agregamos cualquier aplicación, luego de aceptar podremos crear aplicaciones, acceder al foro y otras funcionalidades.

Cuando creamos aplicaciones en Facebook hay que saber que la aplicación que creamos no residen en los servidores de Facebook(el código fuente), sino en un servidor publico común y corriente. Cuando utilizamos aplicaciones creadas por terceros o creamos nuestras propias aplicaciones, Facebook lo que hace es pasar esas solicitudes a otros servidores que procesan los datos e imprimen una respuesta que es leída por Facebook y mostrada al cliente.



Este tip estará dividido en dos pasos:


  1. Crear y configurar la aplicación en Facebook.
  2. Subir archivos al servidor, configurar, programar y probar.

Paso 1: Crear y configurar la aplicación en Facebook



En la pagina de developers existe un botón que dice Set Up New Application, ese botón es el que nos permite crear y configurar nuestra aplicación. Allí nos encontramos con un formulario que nos solicita el nombre que llevara nuestra aplicación y si aceptamos las políticas de uso.





Luego de crear la aplicación nos queda configurar ciertos parámetros como el URL de la aplicación en Facebook, la ruta del servidor en donde residen los archivos de la aplicación que va a responder a las peticiones hechas por Facebook, imagen e icono que identifica a la aplicación, etc.

Basic:



En esta sección asignamos el nombre de nuestra aplicación, descripción, icono, logo, idioma, desarrolladores que estan relacionados con la aplicación, etc.

También podemos notar que aparece un Application ID, API KEY y Secret


Autenticaction:


La primera opción indica a que tipo de perfil puede ser instalada la aplicación.

El punto mas importante a notar en esta sección es el campo Post-Authorize Callback URL, esta ruta indica en donde se encuentra alojada nuestra aplicación.


Canvas:


En el canvas configuramos la dirección de la aplicación en Facebook y el Callback URL de la aplicación.



Con la configuración de estos parámetros podemos continuar al siguiente paso que sera subir los archivos a nuestro servidor, programar el mensaje y probar :D


Paso 2: Subir archivos al servidor, configurar, programar y probar.



Antes de comenzar a programar, vamos a descargar las librerías PHP que nos permitirán interactuar con el API de Facebook.

La estructura en mi servidor es la siguiente:



En la carpeta includes se encuentran las librerías descargadas y un archivo llamado facebook_config.php, creado por mí, el cual tendrá como contenido el API KEY de nuestra aplicación, el código secreto(Secret), además de una instancia de la clase “Facebook” seguido de una variable que tiene el id del usuario que este utilizando la aplicación.

Archivo facebook_config.php:

Código :

<?php
/**
* @Archivo que contiene los parametros de configuración "facebook_config.php"
* @versión: 1.0
* @autor: Psycho
*/

require_once 'facebook-platform/php/facebook.php';

// codigo(KEY) que identifica a nuestra aplicación y es utilizadas en cada llamada a Facebook
$appapikey = 'Coloca tu API Key aquí';

// llave privada para autenticar la aplicación en el servidor de Facebook
$appsecret = 'Coloca tu Application Secret aquí';

// Crear una instancia del objeto Facebook
$facebook = new Facebook($appapikey, $appsecret);

// Obtener el id del usuario que este utilizando la aplicación
$id_usuario = $facebook->require_login();
?>


El ultimo paso es crear el archivo index.php que sera la aplicación como tal, este archivo va a ser que el maneja la instancia del objeto Facebook que se encuentra en el archivo facebook_config.php e imprime “Hello World”.

Archivo index.php

Código :

<?php
/**
* @Archivo que imprime Hello Wold al usuario que utiliza la aplicación "index.php"
* @versión: 1.0
* @autor: Psycho
*/

// Llamar el archivo que contiene los parametros de configuración y obtine el id del usuario
require_once 'includes/facebook_config.php';
?>

Hello World <fb:name uid="<?php echo $id_usuario; ?>" useyou="false" />


Luego de configurar la aplicación en Facebook, programar los archivos y subirlos al servidor nos queda probarla, en mi caso voy a la dirección http://apps.facebook.com/psychotuto/ y lo primero que deberías es ver una pagina parecida a esta en donde aceptas que la aplicación acceda a tus datos.



Luego de aceptar allí, podemos ver nuestra primera aplicación en Facebook:

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas php 2.0 facebook

Comentarios | Enviar un comentario
severo!! toca probar :D
Por: camiloesc-blog
Muy interesante tu tip psycho-vnz. :wink:
Por: Dano
Justo andaba probando a hacer algo así pero no sabía bien como entrarle. Gracias por el dato
Por: Gideon
me parece interesante
Por: diiiiiiiiiiiiiiiiiegooooo
es una reverenda cagada todo esto. jejeje
Por: paja-blog
Genial el resumen de como usar un poco la API de FB y crear una app ^^
Por: daz_angie
muy interesante!!! Y existe alguna guía del api de fb para saber que opciones existen ????

Toca probarlo
Por: jpcw

jpcw-blog :

muy interesante!!! Y existe alguna guía del api de fb para saber que opciones existen ????

Toca probarlo


Para saber que te ofrece el API puedes visitar la wiki en el área de developers, hay algunas cosas que carecen de documentación pero para ir aprendiendo esta bien.
Por: psycho-vnz
WOW, segun sé Tmeister fue el creador de Patea tu amigos en FB, seria muy bueno que el nos diera un tipsillo con la segunda parte de este buen comienzo que nos trae psycho-vnz.

PD: solo es una recomendacion :D
Por: jpcw
por que solo aparece hola facebook user q esta mal, no aparece el nombre en si
Por: sole-blog

sole-blog :

por que solo aparece hola facebook user q esta mal, no aparece el nombre en si

Te refieres a un código que estas probando, si quieres postealo para poder ayudarte.
Por: psycho-vnz
Y cómo encuentro el servidor pucha ahí quedé nomás, hasta el paso 2 descargué la librería php, y de ahí, no he podido avanzar, me ayudas plissss!!!!???!??!?!?
Por: Dudon-blog
Dudon-blog a que servidor te refieres? al servidor en donde colocas tus archivos PHP?
Los archivos los subes en cualquier servidor web al que tengas acceso.
Por: psycho-vnz
Sabes, yo hice mi aplicacion con gifs, ya?
debo dejarlo así nomás, o tengo que ingresarlo igual al dicho servidor, por cierto descargué uno de prueba y está en inglés, pero igual no sé que hacer, Nulo.
gracias.
Por: Dudon -blog

Dudon -blog :

Sabes, yo hice mi aplicacion con gifs, ya?
debo dejarlo así nomás, o tengo que ingresarlo igual al dicho servidor, por cierto descargué uno de prueba y está en inglés, pero igual no sé que hacer, Nulo.
gracias.


Como una aplicación con gifs, disculpa pero no capte como funciona tu aplicación.

Las aplicaciones que se crean para Facebook son como una aplicación web como cualquier otra, a diferencia que puedes utilizar ciertas etiquetas que te proporciona Facebook como el FBML.

Si quieres abre un tópico nuevo en el foro explicando un poco mejor tu duda y si puedes colocar parte de tu código mejor.

De cual ejemplo hablas, si es del que viene junto a las librerías que descargas desde los servidores de Facebook esta nada mas en en ingles hasta donde se.
Por: psycho-vnz
me encanta el faseboock
Por: jere-blog
tengo todo listo, facebook me da una example code, index.php, pero hasta ahí llego, qué tengo que hacer, cuál es la famosa carpeta en donde se aloja la aplicación, mi no entender...
necesito un web hosting, ????, explicarme plis como si tuviera 5 años, pliiiiisssss
Por: alacarga-blog

alacarga-blog :

tengo todo listo, facebook me da una example code, index.php, pero hasta ahí llego, qué tengo que hacer, cuál es la famosa carpeta en donde se aloja la aplicación, mi no entender...
necesito un web hosting, ????, explicarme plis como si tuviera 5 años, pliiiiisssss

Si, necesitas un web server en donde colocar los archivos del example code, la carpeta puede ser cualquiera en el web server siempre y cuando este en la carpeta htdocs.

Para probar crear una carpeta llamada "facebook" en la raíz de tu web server, sube las carpetas footprints y php que estan en el archivo facebook-platform.tar.gz que descargaste del servidor de Facebook.

Luego en el archivo config.php coloca tu API KEY y otros datos que identifican tu aplicación en Facebook y solo te quedaría configurar los parámetros de tu aplicación en Facebook.
Por: psycho-vnz
y un web server recomendable ahhh?????????

se me olvidaba dar las gracias, luego te aviso si me resulta, pues estoy que renuncio, jeje.

GRACIAS.
Por: alacarga again-blog
como se crea un facebook no lo se
Por: agustina-blog
como se crea el facebook
Por: facundo-blog
hola
la estructura de carpetas y archivos no es la misma que mencionas en el tutorial:
Carpeta: footprints
archivos en esta carpeta
config.php
index.php
lib.php
Carpeta: php
archivos en esta carpeta
facebook.php
facebook_desktop.php
facebookapi_php5_restlib.php
Más la carpeta jsonwrapper con los archivos
jsonwrapper.php
jsonwrapper_inner.php.

desde este punto estoy perdido, he buscado por los archivos php y no encuentro dónde poner los valores que me da facebook en la configuración de la api. Alguna idea?

gracias
Por: marlon-blog

marlon-blog :

hola
la estructura de carpetas y archivos no es la misma que mencionas en el tutorial:
Carpeta: footprints
archivos en esta carpeta
config.php
index.php
lib.php
Carpeta: php
archivos en esta carpeta
facebook.php
facebook_desktop.php
facebookapi_php5_restlib.php
Más la carpeta jsonwrapper con los archivos
jsonwrapper.php
jsonwrapper_inner.php.

desde este punto estoy perdido, he buscado por los archivos php y no encuentro dónde poner los valores que me da facebook en la configuración de la api. Alguna idea?

gracias


Aquí tienes los archivos para que los descargues
Por: psycho-vnz
hola
ahora basta con crear algo en php o hay otro lenguaje distinto

gracias
Por: marlon-blog
Saludos me funciona muy bien pero solo me aparece Hello world mas no el nombre de mi usuario, use la descarga del facebook y tu descarga y aun no funciona.
Por: Angel-blog
Oye tengo un problema necesito agregar esta aplicacion pero no se en donde pegarla porfavor ayudame es como una galleta de la fortuna pero con frases de unos amigos

<?php
// COPYRIGHT NOTICE

// All original content within this file is copyright Starsol.co.uk 2003.
// This file may be freely distributed in any form, on the condition that this
// copyright header remains intact.

// The user is free to make any modifications to this file.

// For the latest version go to www.starsol.co.uk/scripts

// INSTRUCTIONS

// 1. Open this file in a text editor such as NotePad. Scroll down until you
// see a comment that says to enter all HTML you would like above the
// script output, and enter this between these lines. Scroll down further
// until you see a comment that says enter all HTML you would like below
// the script output, and enter it between these lines. Save the file.

// 2. Upload this file in ASCII mode via FTP to your webserver.

// 3. Go to http://www.yoursite.com/fortunecookie.php and enjoy!

$version = "v1.0";

?>

<? // Enter all HTML you want above the Virtual Fortune Cookie between this line ?>

<html>
<head>
<title>Frases de la fanaticada</title>
</head>
<body>

<hr>

<? // and this line ?>


<p align="center">
<font face="Arial" size="4">
Frases de la fanaticada
</font>
</p>

<?php

$number = rand(1,20);
if ($number == "1"){$fortune="Yo me subo a los buses de pie (junior).";}
if ($number == "2"){$fortune="Me voy a emborrachar como bestia salvaje (mofle).";}
if ($number == "3"){$fortune="Las voy a llamar a pegarles una madreada por abusivas es que son abusivas (miguelito).";}
if ($number == "4"){$fortune="Viejas mas feas me he comido (tolima).";}
if ($number == "5"){$fortune="Vaya que le den por el cul* (chaman).";}
if ($number == "6"){$fortune="Si el que no tiene manos es manco, el que no tiene pies es pienco (farrael).";}
if ($number == "7"){$fortune="El campin huyyy que gallera tan grandeee (miguelito).";}
if ($number == "8"){$fortune="Quien quita se esta perdiendo de algo por darselas de hombre (montoya).";}
if ($number == "9"){$fortune="La plata es para los pobres y el estudio para lus brutos (chaman).";}
if ($number == "10"){$fortune="levante la patica para medir la resistencia (miguelito).";}
if ($number == "11"){$fortune="Que se sentira comer negro por tercera vez? (tolima).";}
if ($number == "12"){$fortune="no llame a su novia en la noche se les tira el rato a ellos y se atormenta ud (farrael).";}
if ($number == "13"){$fortune="Lo quiero mucho (William).";}
if ($number == "14"){$fortune="si no esta en internet no lo hago (mofle).";}
if ($number == "15"){$fortune="Dream your dream and your dream will dream of you.";}
if ($number == "16"){$fortune="Life is too short to hold grudges.";}
if ($number == "17"){$fortune="Try everything once, even the things you don't think you will like.";}
if ($number == "18"){$fortune="Next time you have the opportunity, go on a rollercoaster.";}
if ($number == "19"){$fortune="Being happy is not always being perfect.";}
if ($number == "20"){$fortune="Open up your heart - it can always be closed again.";}

if ($action == "go"){
echo"<p align='center'><font face='Arial' size='2'><b>$fortune</b></font>";

?>
<form action="fortunecookie.php">
<input type="hidden" name="action" value="go">
<input type="submit" name="submit" value="Consultar otra frase">
</form>
</p>

<?php

}

if ($action != "go"){

?>

<p align="center">&nbsp;</p>
<form action="fortunecookie.php">
<input type="hidden" name="action" value="go">
<input type="submit" name="submit" value="Consultar">
</form>
</p>

<?php

}

?>

<p align="center">
<font face="Arial" size="1" color="#888888">
Powered by: Cristian Tamayo</a> Frases de la fanaticada <?php echo"$version"; ?>
</font>
</p>

<? // Enter all HTML you want below the Virtual Fortune Cookie between this line ?>

<hr>

</body>
</html>

<? // and this line ?>
Por: Cristian Tamayo-blog
yo quiero tener facebook
Por: duban andres alvares blan
Hola, como les va? alguien me podria dar una mano con este error por favor?

Fatal error: Uncaught exception 'FacebookRestClientException' with message 'Incorrect signature' in /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook-platform/php/facebookapi_php5_restlib.php:3025 Stack trace: #0 /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook-platform/php/facebookapi_php5_restlib.php(300): FacebookRestClient->call_method('facebook.auth.g...', Array) #1 /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook-platform/php/facebook.php(205): FacebookRestClient->auth_getSession('c30a15ea0211ade...', false) #2 /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook-platform/php/facebook.php(166): Facebook->do_get_session('c30a15ea0211ade...') #3 /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook-platform/php/facebook.php(68): Facebook->validate_fb_params() #4 /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook_config.php(17): Facebook->__construct('489a146341e2992...', 'd787661c1c3b04c...') #5 /www/metalstudio.com.ar/htdocs/lab/bigba in /www/metalstudio.com.ar/htdocs/lab/bigbanggame/includes/facebook-platform/php/facebookapi_php5_restlib.php on line 3025

Cargue todo hice todos los pasos correctos mi servidor usa php 5 pero no se que pasa. Ayuda please!
Por: Jonatan-blog
Lo solucione solo son las 3:28 y me di cuenta que me falto un caracter cuando copie Secret. QUE PAVOOOOO! Perdonen
GRacias por la data!
Por: Jonatan-blog
A mi solo me imprime el Hello World, no aparece nada al lado de eso!! que onda?
Por: Albert-blog

Albert-blog :

A mi solo me imprime el Hello World, no aparece nada al lado de eso!! que onda?

Hola Albert, esa es la intención del ejemplo y por eso se llama "Crear aplicación Hello World".
Ahora queda de tu parte probar códigos tuyos y ver como se comportan en Facebook, saludos.
Por: psycho-vnz
A ver,

tú dices en tu tutorial que el resultado de la aplicación debe ser:
Hello World nombre_de_usuario

Lo que estamos diciendo algunos es que con los códigos que has pasado, pinta:
Hello world

pero nada más.

Puede ser porque la línea:
$id_usuario = $facebook->require_login();

no es correcta?

Muchas gracias,

urix
Por: urix-blog

urix-blog :

A ver,

tú dices en tu tutorial que el resultado de la aplicación debe ser:
Hello World nombre_de_usuario

Lo que estamos diciendo algunos es que con los códigos que has pasado, pinta:
Hello world

pero nada más.

Puede ser porque la línea:
$id_usuario = $facebook->require_login();

no es correcta?

Muchas gracias,

urix

Hola, $facebook->require_login() lo que hace es validar que el usuario este logueado en Facebook, si el usuario esta logueado te retornara el id del usuario.
Para mostar el nombre de usuario lo que tienen que hacer es colocar la etiqueta fb:name con el id de usuario que te retorna el metodo $facebook->require_login():

Código :

<fb:name uid="<?php echo $id_usuario; ?>" useyou="false" /> 

Por: psycho-vnz
Muchas gracias por tu atención y rapidez de respuesta, el problema es que poniendo esa línea, que es la misma que has puesto arriba en el ejemplo, sólo nos imprime Hello World, sin el nombre. Creo que no soy el único... :(
Por: urix-blog

urix-blog :

Muchas gracias por tu atención y rapidez de respuesta, el problema es que poniendo esa línea, que es la misma que has puesto arriba en el ejemplo, sólo nos imprime Hello World, sin el nombre. Creo que no soy el único... :(

Si haces echo del $id_usuario si te imprime el id?
Por: psycho-vnz
sí, entonces sí...
Por: urix-blog
Ya he encontrado la solución!!! El problema es que no tenía activada la opción:

Método de renderización: IFrameFBML

Igual a los demás que no les funcionaba les pasa lo mismo...

Gracias por toda la atención y un saludo.

urix
Por: urix-blog
muy buen aporte, gracias...
Por: apoloux
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.