Cómo instalar la SDK de Facebook para PHP en CodeIgniter 3

- Andrés Cruz

Cómo instalar la SDK de Facebook para PHP en CodeIgniter 3

Como bien sabrás, Facebook cuenta con una SDK en PHP para poder realizar distintas operaciones en una cuenta en Facebook como publicar un post, obtener datos de una cuenta. etc; esta API por defecto está creada para emplearla en PHP puro (entiéndase sin framework u otra herramienta de desarrollo); por suerte podemos realizar algunas configuraciones en un proyecto CodeIgniter para poder emplearla dentro de nuestros controladores, helper o cualquier otro.

En esta entrada explicaremos cómo integrar la SDK oficial de Facebook para PHP en CodeIgniter sin morir en el intento; recordando un poco, esta SDK es la misma que se ha empleado en anteriores ejemplos:

Ahora veamos los pasos para integrar la SDK en CodeIgniter:

Copiar la SDK de Facebook a la carpeta library

En general la integración es bastante sencilla; lo primero que debemos hacer es copiar el directorio completo de la SDK de Facebook a la carpeta library de nuestro proyecto:

facebook sdk

Crear nuestra librería custom

Ahora creamos un archivo dentro de la carpeta library que llamaremos FacebookSDK o como desees pero intenta que el nombre de la clase no se repita en otra instancia; el archivo tendrá el siguiente contenido:

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

date_default_timezone_set('UTC');
require 'Facebook/Facebook.php';
require_once dirname(__FILE__) . '/Facebook/Facebook.php';
define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/Facebook/');
require_once __DIR__ . '/Facebook/autoload.php';

class FacebookSDK{

    function __construct() {
    }

Cómo ves, en general hacemos todos los include de siempre que son necesarios para trabajar con la API de Facebook; ahora creamos nuestro controlador e incluimos nuestra librería:

$this->load->library('FacebookSDK');

O el nombre que le pongas.

Para facilitar el proceso, colocamos como variables globales dentro de nuestro controlador la app_id y el app_secret; y esto es todo lo que necesitamos para integrar la SDK de Facebook en CodeIgniter; ahora si creamos el siguiente controlador en CodeIgniter:

defined('BASEPATH') OR exit('No direct script access allowed');

class Facebookpost extends CI_Controller {

    var $app_id ='';
    var $app_secret = '';

    public function __construct() {

        parent::__construct();
        $this->load->database();
        $this->load->library('FacebookSDK');
    }

    public function index() {

        $fb = new Facebook\Facebook(array(
            'app_id' => $this->app_id,
            'app_secret' => $this->app_secret,
            'default_graph_version' => 'v2.4'
        ));

        try {
            $accessToken = 'token-que-no-vence';
            //$accessToken = $helper->getAccessToken();
            $linkData = [
                'link' => 'http://www.desarrollolibre.net/blog/tema/55/html/uso-basico-del-canvas',
                'message' => "otro test",
            ];
            var_dump($fb->post('/feed', $linkData, $accessToken));
        } catch (Facebook\Exceptions\FacebookResponseException $e) {
            // When Graph returns an error
            echo 'Graph returned an error: ' . $e->getMessage();
        } catch (Facebook\Exceptions\FacebookSDKException $e) {
            // When validation fails or other local issues
            echo 'Facebook SDK returned an error: ' . $e->getMessage();
        }
    }

}

Veremos que se publica nuestro posts en Facebook sin problemas; el código anterior ya ha sido tratado en las anteriores entradas señaladas a un inicio de esta; si tienes dudas, puedes ver los enlaces anteriores.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.