Cómo instalar la SDK de Facebook para PHP en CodeIgniter 3
- Andrés Cruz
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:
- ¿Cómo crear una aplicación en la Graph API de Facebook?
- ¿Cómo publicar un post en nuestro muro con la API Graph API de Facebook (PHP)?
- Cómo publicar posts en Facebook de manera automatizada con PHP
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:
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.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter