fb sdk mashableLe nuove librerie PHP di Facebook versione 4.x, che si intefacciano con le api 2.2, usano i namespace, funzionalità non ancora usata a pieno in Yii 1.1. Secondo le istruzioni di Facebook presenti su GitHub è sufficiente definire una costante ed includere l'autoloader dell'SDK. Questa soluzione purtroppo non va a braccetto con il loader integrato di Yii.

Esiste però un'escamotage usando gli strumenti interni di Yii. La soluzione è facilmente estendibile a qualunque altra libreria che usi i namespace ed abbia bisogno di un loader.

Scaricare ed estrarre il contenuto dell'SDK in una posizione del progetto, ad esempio protected/extensions/. Nel file dove dobbiamo usare le librerie, prima di definire la classe, aggiungere:

define('FACEBOOK_SDK_V4_SRC_DIR', YiiBase::getPathOfAlias('ext.facebook-php-sdk-master.src.Facebook'));
Yii::setPathOfAlias('Facebook', Yii::getPathOfAlias("ext.facebook-php-sdk-master.src.Facebook"));

A questo punto l'unico accorgimento che dobbiamo seguire per richiamare le funzioni della nuova SDK è di prefissarle con il namespace Facebook

Facebook\FacebookSession::setDefaultApplication($fbAppId, $fbAppSecret);
$helper = new Facebook\FacebookRedirectLoginHelper(Yii::app()->createAbsoluteUrl("/FacebookHandler"));
try {
  $this->_session = $helper->getSessionFromRedirect();
} catch (Facebook\FacebookRequestException $ex) {
  // return FALSE;
} catch (Exception $ex) {
  // return FALSE;
}

Et voilà, ora è possibile usare tranquillamente tutte le API dell'SDK Facebook in Yii! In questo modo si può facilmente creare un modulo o un'estensione che usi Facebook.

 

Image source: mashable.com.

We use cookies to improve our website and your experience when using it. Cookies used for the essential operation of this site have already been set. To find out more about the cookies we use and how to delete them, see our privacy policy.

  I accept cookies from this site.
EU Cookie Directive Module Information