Bonjour,
J'ai un problème pour faire fonctionner Facebook connecte avec la version de cakephp 2

J'importe l'autoloader de composer :

require APP.'Vendor'.DS.'autoload.php';

Ensuite je déclare les use :

use Facebook\FacebookSession;
facebook\FacebookRedirectLoginHelper;

Ensuite dans ma fonction facebook :

require APP.'Vendor'.DS.'autoload.php';
        $appId = "xxx";
        $appSecret = "xxx";
        FacebookSession::setDefaultApplication($appId,$appSecret);
        $helper = new FacebookRedirectLoginHelper("http://local.dev/mal7/users/facebook");

        debug($helper->getLoginUrl());
        die();

En temps normale il devrais me retourner l'url de redirection. J'ai un erreur qui ne trouve pas les classe FacebookSession et FacebookRedirectLoginHelper.
Je pense que l'autoloader ne charge pas les classes.

Merci de votre aide.

6 réponses


lakamark
Auteur

Je ne sais pas si vous comprenez le problème ou je doit être plus précis

Bonjour.
Il nous serait bien utile d'avoir le lien des sources de ce que tu utilise pour Facebook (Plugin/Librairie ....) de manière à ce que nous puissions t'aider, car là, sans référence, nous aurons du mal à t'aider.
Nous ne savons même pas si tu utilises le SDK officiel de Facebook ou si c'est une ressource pour CakePHP.
De plus, que pour utiliser une librairie externe sur CakePHP, il existe une autre méthode que le require pour l'importer.

lakamark
Auteur

Ok je comprend.
J'ai mis le fichier le sdk de facebook dans le fichier vendor de mon fichier : /mal7/app/Vendor/facebook

J'utilise le SDK officiel de Facebook celui : https://developers.facebook.com/docs/php/gettingstarted/4.0.0

lakamark
Auteur

J'ai essayer cette autre alternatif, mais il ne trouve pas tout seule les classe

define('FACEBOOK_SDK_V4_SRC_DIR', '/path/to/fb-php-sdk-v4/src/Facebook/');
require __DIR__ . '/path/to/facebook-php-sdk-v4/autoload.php';

Je te conseille de regarder ceci : Charger des fichiers Vendor.

lakamark
Auteur

ok, mais le autoloader de Facebook ce retrouve : /app/Vendor/facebook/php-sdk-v4/src/autoload.php qui va surment charger automatiquement les namespace de Facebook.

App::import('Vendor', 'facebook', array('file' => 'php-sdk-v4' . DS . 'autoload.php'));;