Do not speak Spanish? Read this post in English.

Sábado, 06 d junio d 2009.

API de FaceBook : Mostrar datos de los usuarios en tus aplicaciones

Nota
La Api de Facebook antigua, en la que está basada la mayor parte de este post, está siendo reemplazada poco a poco por una nueva api de facebook. Es necesario que sepas que Facebook cada día da menos soporte a su antigua api y a Facebook Connect.

Si estás buscando información general sobre este tema te recomiendo que leas los artículos más actuales en la categoría Facebook Graph Api de este mismo blog.

Más concretamente, y en relación a este artículo, puedes leer:

Las aplicaciones de FaceBook funcionan principalmente mediante una página web que alojamos en nuestros propios servidores y que es la que se encarga de realizar todos los procesos reales. Los usuarios realmente no llaman a esa página web directamente sino que lo que hacen es cargar la página de nuestra aplicación en FaceBook. Esta página lo que provoca es que Facebook llame a nuestra página, la que tiene la aplicación de verdad y que ellos llaman "URL Canvas", y le pregunte que contenido debe mostrar para ese usuario concreto.

FaceBook nos brinda una API con la que hacer que nuestra aplicación y su gran base de datos se comuniquen. Para PHP podemos descargar una librería ya hecha que nos va a facilitar la mayor parte del problema.

Pero aún con ella no vamos a disponer de la información real del usuario sino simplemente de su id y de los id's de usuario de sus amigos. Esta es la forma que tiene FaceBook de protejer la privacidad de sus usuarios. De otra forma solo con instalar las aplicaciones nosotros ya podríamos acceder a la información privada de todos los usuarios de cualquiera que se las instalase.

Con este sistema nosotros en nuestra web, en la que estamos realizando nuestra aplicación, no vamos a poner nombres ni fotos reales de usuarios sino que incluiremos etiquetas de FaceBook con estos id's de usuario que FaceBook interpretará y reemplazará por la información real. Para ello FaceBook ha desarrollado el "Facebook Markup Language" o FBML: un sistema de etiquetas parecidas al HTML con el que nosotros indicamos cosas como "Aquí pon el nombre del usuario: 3256134" y "Aquí su foto con un link a su perfil". Veamos un ejemplo práctico en PHP de como programamos nuestra aplicación con la librería PHP para mostrar las fotos de todos los amigos del usaurio logado:

<?php

// cargamos la libreria
require_once('libs/facebook.php'); 
// la apikey nos la dan en http://www.facebook.com/developers
$appapikey = '92a5c3c01f10b9d40ff8a38275cad1234'; 
// el appsecret tn nos lo dan en http://www.facebook.com/developers
$appsecret = '48456be053d7e4afade60a87aa23c151';
// iniciamos el objeto faceBook
$facebook = new Facebook($appapikey, $appsecret);
// Extraemos el id de usuario conectado
$user_id = $facebook->require_login();
// Extraemos a un array los id's de todos sus amigos
$friends_ids = $facebook->api_client->friends_get();

// Mostrando foto del usuario logado
echo '<p>Hola! esta es tu foto: <fb:profile-pic uid="$user_id" linked="true" /></p>';

// Mostrando fotos de todos sus amigos
echo "<ul>";
foreach ( $friends_ids as $friend_id ) 
{
	echo '<li><fb:profile-pic uid='$friend_id' linked='true' /></li>';	
}
echo "</ul>";

A partir de aqui, nosotros podemos desarrollar cualquier aplicación externa con un usuario o sus amigos. Solo tendremos que guardar en nuestra base de datos sus id's y asociarles las opciones que escojan de nuestra aplicación. A la hora de mostrar resultados simplemente usaremos el FBML para hacer una maqueta más amigable pero no podremos usar los datos reales.

Temas Relacionados: programacion

Autor:

9 Comentarios para “API de FaceBook : Mostrar datos de los usuarios en tus aplicaciones”

  1. Alex dice:

    Hola... ¡enhorabuena por tu blog!... ¿podrías ayudarme?
    Tengo una página en facebook dedicada al sector de la autoescuela. En ella, y mediante la aplicación FBML he podido crear una pestaña con enlaces, logos, etc…
    Ahora me gustaría crear otra pestaña con el nombre “Recomendar” en la que, al pinchar en ella, al visitante se le cargara su lista de amigos a los que poder recomendar mi página.
    Mi pregunta es la siguiente:
    ¿Qué código, FB o HTML, debo añadir al crear mediante FBML la pestaña de “Recomendar” para que esta acción se produzca? Muchas gracias. Salu2.

  2. Matias dice:

    Hola, necesitaria crear una appi que me devuelva las fotos con un tag especifico de la persona que use esta appi.
    Ejemplo: Que traiga todas las fotos cuyo tag sea "esteNombre"
    Me podes dar una mano?
    Gracias

  3. Lorenzo dice:

    Ese API está caduco. Ya ni el link para descargado funciona. Por favor actualicelo en beneficio de sus usuarios. Gracias y felicidades por su sitio web.

  4. mendu dice:

    Hola a todos, sabria alguien decirme como puedo obtener los ids de los amigos que el usuario elija?. hasta ahora he podido ver como obtener un listado de todos los amigos pero quiero obtener un listado de todos los amigos que el usuario seleccione. muchas gracias

  5. ikhuerta dice:

    Buenas a todos.

    La verdad es que como dice Lorenzo este post habla de una api desfasada. Actualemtne estoy documentando la nueva forma de hacerlo y espero poder poner un aviso al principio del post avisando cuando lo termine.

    Gracias por leer el blog y disculpar las confusiones.

  6. Elvi dice:

    Hola un gran blog, quisiera saber si me pueden ayudar, tengo un sitio web en el cual los usuarios agregan mensajes y me gustaría que estos se publiquen en el muro de facebook del usuario si lo permiten; es decir Alguien escribe y por medio de un botón "Publicar en Facebook", se agrega el mensaje en el muro de la persona con una imagen y un link a una página.

    Muchas gracias y espero me puedan ayudar.

  7. ikhuerta dice:

    Elvi,

    Si entras en los ejemplos que se indican al principio del post, verás como hay cosas que se acercan bastante a lo que pides. Este post esta desfasado. Se conserva aquí solo como histórico.

  8. Elvi dice:

    Ok gracias, entonces segun entiendo, la nueva api de Facebook es Facebook Graph Api (como referencia "Crear una aplicación con Facebook Graph Api, en modo FBML" del 20 de septiembre), pero tengo una duda, facebook PHP SDK y Javascript SDK, tienen la misma funcionalidad o son diferentes en algo? disculpa que pregunte pero apenas estoy comenzando =P

  9. ikhuerta dice:

    La diferencia esta en 2 puntos:

    PHP es lenguaje de servidor y javascript de cliente. por tanto puedes interactuar mas con PHP. Con ambos podras logar usuarios y publicar en su muro pero con PHP podras usar bases de datos para hacer aplicaciones mas complejas y no solo interaccion directa con facebook.

    Por otro lado, tal y como lo han montado en facebook solo puedes usar etiquetas fbml si usas el sdk javascript, con php tendrias que currarte tu todos estos elementos.

    Asi puestos:

    - Usa Javascript si quieres interaccion muy simple no ligada a base de datos.

    - Usa PHP si necesitas hacer algo mas serio que haga seguimiento e interaccion ocn usuarios.

    - Usa ambos si necesitas algo serio y ademas etiquetas FBML

Anímate y deja tu comentario

Esto son experimentos, no preguntes ;) prueba metadescription Prueba title