Estoy empezando con el desarrollo de una aplicacion en Facebook (modo iframe) utilizando el SDK para php.
Pero se me ocurrio no hacerlo cpn php 'puro', sino usar CodeIgniter. El problema fue la integracion de SDK de Facebok con este framework. Luego de buscar mucho en internet, probrar librerias de 3ros y hasta una version de CI adaptada para aplicaciones Facebook, finalmente me decidi por integrarlo yo mismo.
Lo primero logicamente es descargar y subir CodeIgniter a nuestro servidor web, dentro del directorio raiz del mismo. Luego descargar el SDK PHP de facebook, y subir solo la carpeta 'src' tambien a la raiz de nuestro servidor web, y renombrarla como 'fb_libs'.
Una vez que hallamos subido todo lo necesario, pasaremos a crear una libreria para manejar la clase Facebbok. En el directorio 'applicationlibraries' creamos el archivo 'fb.php' con el siguiente contenido:
Código
class FB { private $o; var $user; public function __construct() { require 'fb_libs/facebook.php'; 'appId' => 'api_key_de_tu_aplicacion', 'secret' => 'codigo_secreto_de_tu_aplicacion', )); // See if there is a user from a cookie $this->user = $this->o->getUser(); if (!$this->user) { 'scope' => 'read_stream', 'redirect_uri' => 'https://apps.facebook.com/PAGINA_DE_TRABAJO/' ); } } public function api($query){ return $this->o->api($query); } } ?>
Prestando atencion en poner los datos de nuestra aplicacion. (api_key, codigo_secreto y pagina_trabajo).
Por ejemplo, para usarla creamos un controlador llamado 'welcome.php' (que es el controlador por defecto) y ponemos el siguiente codigo:
Código
class Welcome extends CI_Controller { public function __construct() { parent::__construct(); $this->load->library('fb'); $this->user_profile = $this->fb->api('/me'); } public function index() { $data['name'] = $this->user_profile['first_name']; $data['location'] = $this->user_profile['location']['name']; $this->load->view('welcome_message', $data); } }
Y luego creamos la vista 'welcome_message.php' con el siguiente codigo:
Código
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <title>Usando FB en CI by Unsigned</title> </head> <body> Nombre: <?=$name?><br /> Ciudad: <?=$location?> <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p> </body> </html>
No voy a entrar mucho en detalles, calculo que quien lee esto es porque minimamente conoce CodeIgniter, y probablemente este empezando o conozca la el SDK de Facebook para PHP.
Lo unico que quiero aclara son dos cosas:
1) Debemos cargar la libreria en todos nuestros controladores, o ponerla en auto load. Si lo hacemos a mano, se debe cargar justo despues de llamar al constructor padre.
2) La libreria se encarga automaticamente de redirigir a los usuarios al link de O Auth. Esto es en caso de que sea la primera vez que el usuario la usa, o dicho de otra forma, si el usuario no la tiene instalada en su perfil de facebook, automaticamente se lo re dirige.
3) Por ultimo, para usar la API del sdk desde nuestro controladores basta con llamar a la funcion api() del objeto $this->fb, ejemplo:
Código
$foto_perfil_url = $this->fb->api('/me/picture');
Espero les sea util.
Saludos
PD: estoy en laburo, luego arreglo y aplio mas el post, quizas termine siendo un tutorial xD.