Hace poco publiqué un post de como crear vuestra primera aplicación de Facebook con PHP. 
Con este post vamos a ir ahora un pasito más adelante, os voy a enseñar con un sencillo ejemplo como utilizar la API de Facebook en nuestra aplicación.
El primer paso para utilizar la API de Facebook en nuestra aplicación es tener creada una aplicación de Facebook funcionando en un servidor Apache con sus correspondientes librerías en PHP5.
Si tenemos ya controlado ese paso trabajar con la API de Facebook es bastante sencillo. Facebook utiliza un sistema de comunicación que ellos denominan REST-interface, que viene a ser algo parecido a un servidor SOAP con XML, pero con sus particularidades. Es decir, que desde nuestra aplicación enviamos peticiones vías http al servidor de Facebook y este ejecutará los métodos que le solicitemos (o nos enviará las propiedades) y nos dará la respuesta también vía http.
Esto nos lleva a hablar de un requisito importante de nuestro servidor, debe tener Curl activado, de lo contrario el ejemplo que voy a mostraros no funcionaría. La librería Curl sirve para que desde PHP podamos navegar páginas web remotas (o sea, enviar y recibir datos vía http) y sólo puede ser activada por el administrador del servidor, así que si vuestro hosting no lo tiene activado moved Roma con Santiago para conseguir que os la activen (o cambiar de proveedor de hosting).
Os pongo aquí un ejemplo sencillo que muestra como subir fotos con la API de Facebook y PHP:
<?php
function signRequest(&$args, $secret){
ksort($args);
$sig = "";
foreach($args as $k => $v){
$sig .= $k . '=' . $v;
}
$sig .= $secret;
$args['sig'] = md5($sig);
}
$key = 'xxxxxxxxxxxxxxxxxxxxxx';
$sec = 'xxxxxxxxxxxxxxxxxxxxxxxx';
$ver = '1.0';
$cid = microtime(true);
$uid = 'BIGINT';
$file= 'foto.jpg';
$args = array(
'method' => 'photos.upload',
'v' => $ver,
'api_key' => $key,
'uid' => $uid,
'call_id' => $cid,
'format' => 'XML'
);
signRequest($args, $sec);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'http://api.facebook.com/restserver.php?method=photos.upload';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);
?>
Cómo veis preparamos un paquete de datos y una vez lo tenemos listo lo envíamos vía http utilizando Curl. posts posteriores volveremos sobre este ejemplo para explicar al detalle como se construyen y se firman esos datos antes de enviarlos al REST server y sobre como procesar su respuesta en XML.
VN:F [1.8.1_1037]
Rating: 1.0/5 (2 votes cast)